Changeset 3687 for trunk/src


Ignore:
Timestamp:
Jun 12, 2000, 10:09:48 AM (25 years ago)
Author:
phaller
Message:

.

Location:
trunk/src/shlwapi
Files:
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/shlwapi/ordinal.cpp

    r3684 r3687  
    1 /* $Id: ordinal.cpp,v 1.1 2000-06-11 08:44:53 phaller Exp $ */
     1/* $Id: ordinal.cpp,v 1.2 2000-06-12 08:09:37 phaller Exp $ */
    22
    33/*
     
    5252#include "heap.h"
    5353
     54#include "win/wine/obj_base.h"
    5455#include "shellapi.h"
    5556#include "shlobj.h"
     
    7172
    7273HANDLE WIN32API SHLWAPI_11(HANDLE, DWORD, DWORD, DWORD, DWORD);
    73 DWORD  WIN32API SHLWAPI_95(HWND, LPWSTR, int);
     74
     75
     76#define debugstr_guid(a) a
    7477
    7578
     
    555558
    556559
     560/*****************************************************************************
     561 * Name      : ???
     562 * Purpose   : Unknown (used by explorer.exe)
     563 * Parameters: Unknown (wrong)
     564 * Variables :
     565 * Result    : Unknown
     566 * Remark    :
     567 * Status    : UNTESTED STUB
     568 *
     569 * Author    : Patrick Haller [Sun, 2000/06/09 04:47]
     570 *****************************************************************************/
     571
     572ODINFUNCTION2(DWORD,SHLWAPI_17,
     573              DWORD, arg0,
     574              DWORD, arg1)
     575{
     576  dprintf(("not implemented, explorer.exe will trap now"));
     577
     578  return 0;
     579}
     580
     581
     582/*****************************************************************************
     583 * Name      : ???
     584 * Purpose   : Unknown (used by explorer.exe)
     585 * Parameters: Unknown (wrong)
     586 * Variables :
     587 * Result    : Unknown
     588 * Remark    :
     589 * Status    : UNTESTED STUB
     590 *
     591 * Author    : Patrick Haller [Sun, 2000/06/09 04:47]
     592 *****************************************************************************/
     593
     594ODINFUNCTION2(DWORD,SHLWAPI_18,
     595              DWORD, arg0,
     596              DWORD, arg1)
     597{
     598  dprintf(("not implemented, explorer.exe will trap now"));
     599
     600  return 0;
     601}
     602
     603
     604/*****************************************************************************
     605 * Name      : SHLWAPI_19
     606 * Purpose   : Free memory
     607 * Parameters: LPVOID lpMem
     608 * Variables :
     609 * Result    :
     610 * Remark    : SHLWAPI.19
     611 * Status    : UNTESTED
     612 *
     613 * Author    : Patrick Haller [Sun, 2000/06/09 04:47]
     614 *****************************************************************************/
     615
     616ODINPROCEDURE1(SHLWAPI_19,
     617               HLOCAL, hMem)
     618{
     619  if (hMem != NULL)
     620    LocalFree(hMem);
     621}
     622
     623
     624/*****************************************************************************
     625 * Name      : ???
     626 * Purpose   : Unknown (used by explorer.exe)
     627 * Parameters: Unknown (wrong)
     628 * Variables :
     629 * Result    : Unknown
     630 * Remark    :
     631 * Status    : UNTESTED STUB
     632 *
     633 * Author    : Patrick Haller [Sun, 2000/06/09 04:47]
     634 *****************************************************************************/
     635
     636ODINFUNCTION2(DWORD,SHLWAPI_20,
     637              DWORD, arg0,
     638              DWORD, arg1)
     639{
     640  dprintf(("not implemented, explorer.exe will trap now"));
     641
     642  return 0;
     643}
     644
     645
     646/*****************************************************************************
     647 * Name      : ???
     648 * Purpose   : Unknown (used by explorer.exe)
     649 * Parameters: Unknown (wrong)
     650 * Variables :
     651 * Result    : Unknown
     652 * Remark    :
     653 * Status    : UNTESTED STUB
     654 *
     655 * Author    : Patrick Haller [Sun, 2000/06/09 04:47]
     656 *****************************************************************************/
     657
     658ODINFUNCTION2(DWORD,SHLWAPI_21,
     659              DWORD, arg0,
     660              DWORD, arg1)
     661{
     662  dprintf(("not implemented, explorer.exe will trap now"));
     663
     664  return 0;
     665}
     666
     667
     668/*****************************************************************************
     669 * Name      : ???
     670 * Purpose   : Unknown (used by explorer.exe)
     671 * Parameters: Unknown (wrong)
     672 * Variables :
     673 * Result    : Unknown
     674 * Remark    :
     675 * Status    : UNTESTED STUB
     676 *
     677 * Author    : Patrick Haller [Sun, 2000/06/09 04:47]
     678 *****************************************************************************/
     679
     680ODINFUNCTION2(DWORD,SHLWAPI_22,
     681              DWORD, arg0,
     682              DWORD, arg1)
     683{
     684  dprintf(("not implemented, explorer.exe will trap now"));
     685
     686  return 0;
     687}
     688
    557689
    558690/*****************************************************************************
     
    561693 * Parameters:
    562694 * Variables :
    563  * Result    :
    564  * Remark    :
     695 * Result    : returns strlen(str)
     696 * Remark    : converts a guid to a string
    565697 * Status    : UNTESTED STUB
    566698 *
     
    568700 *****************************************************************************/
    569701
    570 ODINFUNCTION3(DWORD,SHLWAPI_23,
    571               DWORD,arg0,
    572               DWORD,arg1,
    573               DWORD,arg2)
    574 {
    575   dprintf(("not yet implemented"));
    576 
    577   return 0;
     702ODINFUNCTION3(DWORD,  SHLWAPI_23,
     703              REFGUID,guid,  /* [in]  clsid */
     704              LPSTR,  str,     /* [out] buffer */
     705              INT,    cmax) /* [in]  size of buffer */
     706{
     707    char xguid[80];
     708   
     709    TRACE("(%s %p 0x%08x)stub\n", debugstr_guid(guid), str, cmax);
     710   
     711    if (WINE_StringFromCLSID(guid,xguid)) return 0;
     712    if (strlen(xguid)>=cmax) return 0;
     713    strcpy(str,xguid);
     714    return strlen(xguid) + 1;
     715}
     716
     717
     718/*************************************************************************
     719*      SHLWAPI_24  [SHLWAPI.24]
     720*
     721* NOTES
     722*   converts a guid to a string
     723*   returns strlen(str)
     724*/
     725ODINFUNCTION3(DWORD,   SHLWAPI_24,
     726              REFGUID, guid,   /* [in]  clsid */
     727              LPWSTR,  str,    /* [out] buffer */
     728              INT,     cmax)   /* [in]  size of buffer */
     729{
     730  TRACE("(%s %p 0x%08x)stub\n", debugstr_guid(guid), str, cmax);
     731  return StringFromGUID2(guid, str, cmax);
    578732}
    579733
     
    601755
    602756/*****************************************************************************
    603  * Name      : LRESULT CallWindowProcAW
    604  * Purpose   :
     757 * Name      : SHLWAPI_30
     758 * Purpose   : Check for whitespace in ascii and unicode ?
    605759 * Parameters:
    606760 * Variables :
    607761 * Result    :
    608  * Remark    : SHLWAPI.37
     762 * Remark    :
    609763 * Status    : UNTESTED
    610764 *
     
    612766 *****************************************************************************/
    613767
    614 ODINFUNCTION5(LRESULT,      CallWindowProcAW,
    615               WNDPROC,      lpPrevWndFunc,
    616               HWND,         hWnd,
    617               UINT,         Msg,
    618               WPARAM,       wParam,
    619               LPARAM,       lParam)
    620 {
    621   if (VERSION_OsIsUnicode())
    622     return CallWindowProcW(lpPrevWndFunc, hWnd, Msg, wParam, lParam);
     768ODINFUNCTION1(DWORD,SHLWAPI_30,
     769              WORD, ch)
     770{
     771  if ( (ch == 0x09)   || // tab
     772       (ch == 0x20)   || // space
     773       (ch == 0x3000) ||
     774       (ch == 0xFEFF) )
     775    return 1;
    623776  else
    624     return CallWindowProcA(lpPrevWndFunc, hWnd, Msg, wParam, lParam);
    625 }
    626 
    627 
    628 /*****************************************************************************
    629  * Name      : SHLWAPI_38
    630  * Purpose   :
    631  * Parameters:
    632  * Variables :
    633  * Result    :
    634  * Remark    :
    635  * Status    : UNTESTED STUB
     777    return 0;
     778}
     779
     780
     781
     782/*****************************************************************************
     783 * Name      : DWORD SHLWAPI_156
     784 * Purpose   : Case-sensitive wide string compare
     785 * Parameters: LPSTR lpStr1
     786 *             LPSTR lpStr2
     787 * Variables :
     788 * Result    : case-sensitive comparsion result between the two strings
     789 * Remark    : SHLWAPI.158
     790 * Status    : UNTESTED
    636791 *
    637792 * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    638793 *****************************************************************************/
    639794
    640 ODINFUNCTION1(DWORD,SHLWAPI_38,
    641               DWORD,arg0)
    642 {
    643   dprintf(("not yet implemented"));
    644 
    645   return 0;
    646 }
    647 
    648 
    649 /*****************************************************************************
    650  * Name      : SHLWAPI_40
    651  * Purpose   : looks like CharNextW
    652  * Parameters:
    653  * Variables :
    654  * Result    :
    655  * Remark    :
    656  * Status    : UNTESTED
    657  *
    658  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    659  *****************************************************************************/
    660 
    661 ODINFUNCTION1(LPWSTR, SHLWAPI_40,
    662               LPWSTR, lpChar)
    663 {
    664    if (*lpChar == 0)
    665      return lpChar;
    666    else
    667      return lpChar++;
    668 }
    669 
    670 
    671 /*****************************************************************************
    672  * Name      : SHLWAPI_43
    673  * Purpose   :
    674  * Parameters:
    675  * Variables :
    676  * Result    :
    677  * Remark    :
    678  * Status    : UNTESTED STUB
    679  *
    680  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    681  *****************************************************************************/
    682 
    683 ODINFUNCTION1(DWORD,SHLWAPI_43,
    684               DWORD,arg0)
    685 {
    686   dprintf(("not yet implemented"));
    687 
    688   return 0;
    689 }
    690 
    691 
    692 /*****************************************************************************
    693  * Name      : SHLWAPI_53
    694  * Purpose   : Character base independend CreateFontIndirect
    695  * Parameters:
    696  * Variables :
    697  * Result    :
    698  * Remark    :
    699  * Status    : UNTESTED
    700  *
    701  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    702  *****************************************************************************/
    703 
    704 ODINFUNCTION1(DWORD,            SHLWAPI_53,
    705               CONST LOGFONTW *, lplf)
    706 {
    707   if (VERSION_OsIsUnicode())
    708     return CreateFontIndirectW(lplf);
    709   else
    710   {
    711     // Original:
    712     // convert lplf to LOGFONTA
    713     // call CreateFontIndirectA
    714     return CreateFontIndirectW(lplf);
    715   }
    716 }
    717 
    718 
    719 /*****************************************************************************
    720  * Name      : LRESULT sDefWindowProcAW
    721  * Purpose   :
    722  * Parameters:
    723  * Variables :
    724  * Result    :
    725  * Remark    : SHLWAPI.56 - this procedure has static unicode behaviour
    726  * Status    : UNTESTED
    727  *
    728  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    729  *****************************************************************************/
    730 
    731 ODINFUNCTION4(LRESULT,      sDefWindowProcAW,
    732               HWND,         hWnd,
    733               UINT,         Msg,
    734               WPARAM,       wParam,
    735               LPARAM,       lParam)
    736 {
    737   if (VERSION_OsIsUnicode())
    738     return DefWindowProcW(hWnd, Msg, wParam, lParam);
    739   else
    740     return DefWindowProcA(hWnd, Msg, wParam, lParam);
    741 }
    742 
    743 
    744 /*****************************************************************************
    745  * Name      : SHLWAPI_59
    746  * Purpose   : DialogBoxParamAW
    747  * Parameters:
    748  * Variables :
    749  * Result    :
    750  * Remark    :
    751  * Status    : UNTESTED
    752  *
    753  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    754  *****************************************************************************/
    755 
    756 ODINFUNCTION5(DWORD,     SHLWAPI_59,
    757               HINSTANCE, hInstance,
    758               LPCSTR,    lpTemplateName,
    759               HWND,      hWndParent,
    760               DLGPROC,   lpDialogFunc,
    761               LPARAM,    dwInitParam)
    762 {
    763   // PH Note: originally, here are some heavy hooks into Internet Explorer
    764   // and tons of language support stuff.
    765  
    766   if (VERSION_OsIsUnicode())
    767     return DialogBoxParamW(hInstance,
    768                            (LPCWSTR)lpTemplateName,
    769                            hWndParent,
    770                            lpDialogFunc,
    771                            dwInitParam);
    772   else
    773     return DialogBoxParamA(hInstance,
    774                            lpTemplateName,
    775                            hWndParent,
    776                            lpDialogFunc,
    777                            dwInitParam);
    778 }
    779 
    780 
    781 /*****************************************************************************
    782  * Name      : LONG DispatchMessage
    783  * Purpose   :
    784  * Parameters:
    785  * Variables :
    786  * Result    :
    787  * Remark    : SHLWAPI.60
    788  * Status    : UNTESTED
    789  *
    790  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    791  *****************************************************************************/
    792 
    793 ODINFUNCTION1(LONG,       DispatchMessageAW,
    794               const MSG*, lpmsg)
    795 {
    796   if (VERSION_OsIsUnicode())
    797     return DispatchMessageW(lpmsg);
    798   else
    799     return DispatchMessageA(lpmsg);
    800 }
    801 
    802 
    803 /*****************************************************************************
    804  * Name      : SHLWAPI_74
    805  * Purpose   : Sort of GetDlgItemText
    806  * Parameters:
    807  * Variables :
    808  * Result    :
    809  * Remark    :
    810  * Status    : UNTESTED
    811  *
    812  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    813  *****************************************************************************/
    814 
    815 ODINFUNCTION4(DWORD,     SHLWAPI_74,
    816               HWND,      hDlg,
    817               int,       nIDDlgItem,
    818               LPWSTR,    lpText,
    819               int,       nMaxCount)
    820 {
    821   HWND hwndItem = GetDlgItem(hDlg,
    822                              nIDDlgItem);
    823   if (hwndItem == NULL)
    824   {
    825     if (nMaxCount != 0)  // PH Note: bug in original windows code
    826       *lpText = 0;
    827    
    828     return NULL;
    829   }
    830  
    831   // else retrieve the text
    832   return SHLWAPI_95(hwndItem,
    833                     lpText,
    834                     nMaxCount);
    835 }
    836 
    837 
    838 /*****************************************************************************
    839  * Name      : HMODULE GetModuleHandleAW
    840  * Purpose   :
    841  * Parameters:
    842  * Variables :
    843  * Result    :
    844  * Remark    : SHLWAPI.83 - check back with original code, result may be wrong
    845  * Status    : UNTESTED
    846  *
    847  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    848  *****************************************************************************/
    849 
    850 ODINFUNCTION1(HMODULE, GetModuleHandleAW,
    851               LPWSTR,  lpModuleName)
    852 {
    853   if (VERSION_OsIsUnicode())
    854     return GetModuleHandleW(lpModuleName);
    855   else
    856   {
    857     dprintf(("error: unicode to ascii conversion missing"));
    858     return GetModuleHandleA((LPSTR)lpModuleName);
    859   }
    860 }
    861 
    862 
    863 /*****************************************************************************
    864  * Name      : LONG GetWindowLongAW
    865  * Purpose   :
    866  * Parameters:
    867  * Variables :
    868  * Result    :
    869  * Remark    : SHLWAPI.94
    870  * Status    : UNTESTED
    871  *
    872  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    873  *****************************************************************************/
    874 
    875 ODINFUNCTION2(LONG,    GetWindowLongAW,
    876               HWND,    hWnd,
    877               int,     nIndex)
    878 {
    879   if (VERSION_OsIsUnicode())
    880     return GetWindowLongW(hWnd, nIndex);
    881   else
    882     return GetWindowLongA(hWnd, nIndex);
    883 }
    884 
    885 
    886 /*****************************************************************************
    887  * Name      : SHLWAPI_95
    888  * Purpose   :
    889  * Parameters:
    890  * Variables :
    891  * Result    :
    892  * Remark    :
    893  * Status    : UNTESTED
    894  *
    895  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    896  *****************************************************************************/
    897 
    898 ODINFUNCTION3(DWORD,     SHLWAPI_95,
    899               HWND,      hwndItem,
    900               LPWSTR,    lpText,
    901               int,       nMaxCount)
    902 {
    903   dprintf(("not properly implemented.\n"));
    904  
    905   // @@@PH too simple, original deals with some properties and stuff
    906   if (VERSION_OsIsUnicode())
    907     return GetWindowTextW(hwndItem,
    908                           lpText,
    909                           nMaxCount);
    910   else
    911   {
    912     // @@@PH unicode conversion is missing
    913     return GetWindowTextA(hwndItem,
    914                           (LPSTR)lpText,
    915                           nMaxCount);
    916   }
    917 }
    918 
    919 
    920 /*****************************************************************************
    921  * Name      : HCURSOR LoadCursorAW
    922  * Purpose   :
    923  * Parameters:
    924  * Variables :
    925  * Result    :
    926  * Remark    : SHLWAPI.102
    927  * Status    : UNTESTED
    928  *
    929  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    930  *****************************************************************************/
    931 
    932 ODINFUNCTION2(HCURSOR,   LoadCursorAW,
    933               HINSTANCE, hInstance,
    934               LPCSTR,    lpCursorName)
    935 {
    936   if (VERSION_OsIsUnicode())
    937     return LoadCursorW(hInstance, (LPCWSTR)lpCursorName);
    938   else
    939     return LoadCursorA(hInstance, lpCursorName);
    940 }
    941 
    942 
    943 /*****************************************************************************
    944  * Name      : BOOL PeekMessageAW
    945  * Purpose   :
    946  * Parameters:
    947  * Variables :
    948  * Result    :
    949  * Remark    : SHLWAPI.116
    950  * Status    : UNTESTED
    951  *
    952  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    953  *****************************************************************************/
    954 
    955 ODINFUNCTION5(BOOL,    PeekMessageAW,
    956               LPMSG,   lpMsg,
    957               HWND,    hWnd,
    958               UINT,    uMsgFilterMin,
    959               UINT,    uMsgFilterMax,
    960               UINT,    wRemoveMsg)
    961 {
    962   if (VERSION_OsIsUnicode())
    963     return PeekMessageW(lpMsg, hWnd, uMsgFilterMin, uMsgFilterMax, wRemoveMsg);
    964   else
    965     return PeekMessageA(lpMsg, hWnd, uMsgFilterMin, uMsgFilterMax, wRemoveMsg);
    966 }
    967 
    968 
    969 /*****************************************************************************
    970  * Name      : BOOL PostMessageAW
    971  * Purpose   :
    972  * Parameters:
    973  * Variables :
    974  * Result    :
    975  * Remark    : SHLWAPI.117
    976  * Status    : UNTESTED
    977  *
    978  * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
    979  *****************************************************************************/
    980 
    981 ODINFUNCTION4(BOOL,    PostMessageAW,
    982               HWND,    hWnd,
    983               UINT,    Msg,
    984               WPARAM,  wParam,
    985               LPARAM,  lParam)
    986 {
    987   if (VERSION_OsIsUnicode())
    988     return PostMessageW(hWnd, Msg, wParam, lParam);
    989   else
    990     return PostMessageA(hWnd, Msg, wParam, lParam);
     795ODINFUNCTION2(DWORD,  SHLWAPI_156,
     796              LPWSTR, str1,   /* "shell32.dll" */
     797              LPWSTR, str2)   /* "shell32.dll" */
     798{
     799  return lstrcmpW(str1,str2);
    991800}
    992801
     
    1035844  /* OK, strings compared til end of string1 */
    1036845  return 0;
     846}
     847
     848
     849/*****************************************************************************
     850 * Name      : DWORD SHLWAPI_160
     851 * Purpose   :
     852 * Parameters:
     853 * Variables :
     854 * Result    :
     855 * Remark    : SHLWAPI.160
     856 * Status    : UNTESTED STUB
     857 *
     858 * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
     859 *****************************************************************************/
     860
     861ODINFUNCTION2(DWORD,  SHLWAPI_160,
     862              DWORD,  arg0,
     863              DWORD,  arg1)
     864{
     865  dprintf(("not implemented.\n"));
     866  return 0;
     867}
     868
     869
     870
     871/*************************************************************************
     872*      SHLWAPI_169 [SHLWAPI]
     873*/
     874ODINFUNCTION1(DWORD,       SHLWAPI_169,
     875              IUnknown **, lplpUnknown)
     876{
     877  IUnknown *lpUnknown;
     878 
     879  if (lplpUnknown == NULL)
     880    return 0;
     881 
     882  lpUnknown = *lplpUnknown;
     883  if (lpUnknown == NULL)
     884    return 0;
     885 
     886  *lplpUnknown = NULL; // kill object pointer
     887 
     888  // and still call the object's release method
     889  return IUnknown_Release(lpUnknown);
     890}
     891
     892
     893/*****************************************************************************
     894 * Name      : LPSTR SHLWAPI_170
     895 * Purpose   : verify if current string position is "//" or not
     896 *             skip "//" ...
     897 * Parameters: LPSTR lpStr
     898 * Variables :
     899 * Result    : lpStr + 2 or NULL
     900 * Remark    : SHLWAPI.170
     901 * Status    : UNTESTED
     902 *
     903 * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
     904 *****************************************************************************/
     905
     906ODINFUNCTION1(LPSTR, SHLWAPI_170,
     907              LPSTR, lpStr)
     908{
     909  if ( (lpStr      != NULL) &&
     910       (*lpStr     == '/' ) &&
     911       (*(lpStr+1) == '/' ) )
     912    return lpStr+2;
     913  else
     914    return lpStr;
     915}
     916
     917
     918/*************************************************************************
     919*      SHLWAPI_193 [SHLWAPI]
     920* query current color depth
     921*/
     922ODINFUNCTION0(DWORD, SHLWAPI_193)
     923{
     924  HDC hdc;
     925  DWORD ret;
     926 
     927  hdc = GetDC(0);
     928  ret = GetDeviceCaps(hdc, BITSPIXEL) * GetDeviceCaps(hdc, PLANES);
     929  ReleaseDC(0, hdc);
     930  return ret;
    1037931}
    1038932
     
    1073967
    1074968
     969/*************************************************************************
     970*      SHLWAPI_219 [SHLWAPI]
     971*/
     972ODINFUNCTION4(HRESULT, SHLWAPI_219,
     973              LPVOID,  w, /* returned by LocalAlloc */
     974              LPVOID,  x,
     975              LPVOID,  y,
     976              LPWSTR,  z) /* OUT: path */
     977{
     978  FIXME("(%p %p %p %p)stub\n",w,x,y,z);
     979  return 0xabba1252;
     980}
     981
     982
     983/*************************************************************************
     984*      SHLWAPI_222 [SHLWAPI]
     985*
     986* NOTES
     987*  securityattributes missing
     988*/
     989ODINFUNCTION1(HANDLE,  SHLWAPI_222,
     990              LPCLSID, guid)
     991{
     992  char lpstrName[80];
     993  strcpy( lpstrName,"shell.");
     994  WINE_StringFromCLSID(guid, lpstrName + strlen(lpstrName));
     995 
     996  FIXME("(%s) stub\n", lpstrName);
     997  return CreateSemaphoreA(NULL,0, 0x7fffffff, lpstrName);
     998}
     999
     1000
     1001/*************************************************************************
     1002*      SHLWAPI_223 [SHLWAPI]
     1003*
     1004* NOTES
     1005*  function guessed
     1006*/
     1007ODINFUNCTION1(DWORD,  SHLWAPI_223,
     1008              HANDLE, handle)
     1009{
     1010  LONG oldCount;
     1011 
     1012  FIXME("(0x%08x) stub\n",handle);
     1013 
     1014  ReleaseSemaphore( handle, 1, &oldCount);
     1015  WaitForSingleObject( handle, 0 );
     1016  return 0;
     1017}
     1018
     1019
     1020/*************************************************************************
     1021*      SHLWAPI_237 [SHLWAPI]
     1022* Purpose: verify a WNDCLASSW structure
     1023*/
     1024ODINFUNCTION1(DWORD,       SHLWAPI_237,
     1025              LPWNDCLASSW, lpWndClass)
     1026{
     1027  WNDCLASSW wndClass;
     1028 
     1029  if (GetClassInfoW(lpWndClass->hInstance,
     1030                    (LPWSTR)lpWndClass->lpszClassName,
     1031                    &wndClass) == TRUE)
     1032    return 1;
     1033  else
     1034    return 0;
     1035}
     1036
     1037
    10751038/*****************************************************************************
    10761039 * Name      : LRESULT DefWindowProcAW
     
    10961059    return DefWindowProcA(hWnd, Msg, wParam, lParam);
    10971060}
     1061
     1062
     1063/*************************************************************************
     1064*      SHLWAPI_241 [SHLWAPI]
     1065*
     1066*/
     1067ODINFUNCTION0(DWORD, SHLWAPI_241)
     1068{
     1069  FIXME("()stub\n");
     1070  return 0xabba1243;
     1071}
     1072
     1073/*************************************************************************
     1074*      SHLWAPI_266 [SHLWAPI]
     1075*/
     1076ODINFUNCTION4(DWORD,  SHLWAPI_266,
     1077              LPVOID, w,
     1078              LPVOID, x,
     1079              LPVOID, y,
     1080              LPVOID, z)
     1081{
     1082  FIXME("(%p %p %p %p)stub\n",w,x,y,z);
     1083  return 0xabba1248;
     1084}
     1085
     1086/*************************************************************************
     1087*      SHLWAPI_267 [SHLWAPI]
     1088*/
     1089ODINFUNCTION4(HRESULT, SHLWAPI_267,
     1090              LPVOID,  w, /* same as 1th parameter of SHLWAPI_219 */
     1091              LPVOID,  x, /* same as 2nd parameter of SHLWAPI_219 */
     1092              LPVOID,  y,
     1093              LPVOID,  z)
     1094{
     1095  FIXME("(%p %p %p %p)stub\n",w,x,y,z);
     1096  *((LPDWORD)z) = 0xabba1200;
     1097  return 0xabba1254;
     1098}
     1099
     1100/*************************************************************************
     1101*      SHLWAPI_268 [SHLWAPI]
     1102*/
     1103ODINFUNCTION2(DWORD,  SHLWAPI_268,
     1104              LPVOID, w,
     1105              LPVOID, x)
     1106{
     1107  FIXME("(%p %p)\n",w,x);
     1108  return 0xabba1251; /* 0 = failure */
     1109}
     1110
     1111/*************************************************************************
     1112*      SHLWAPI_276 [SHLWAPI]
     1113* dynamically load SHELL32.DllGetVersion
     1114*
     1115*/
     1116ODINFUNCTION0(DWORD, SHLWAPI_276)
     1117{
     1118  FIXME("()stub\n");
     1119  return 0xabba1244;
     1120}
     1121
     1122
     1123/*************************************************************************
     1124*      SHLWAPI_309 [SHLWAPI]
     1125*
     1126*/
     1127ODINFUNCTION1(DWORD, SHLWAPI_309,
     1128              LPVOID, x)
     1129{
     1130  FIXME("(%p)stub\n",x);
     1131  return 0xabba1245;
     1132}
     1133
     1134/*************************************************************************
     1135*      SHLWAPI_342 [SHLWAPI]
     1136*
     1137*/
     1138ODINFUNCTION4(DWORD,  SHLWAPI_342,
     1139              LPVOID, w,
     1140              LPVOID, x,
     1141              LPVOID, y,
     1142              LPVOID, z)
     1143{
     1144  FIXME("(%p %p %p %p)stub\n",w,x,y,z);
     1145  return 0xabba1249;
     1146}
     1147
     1148/*************************************************************************
     1149*      SHLWAPI_346 [SHLWAPI]
     1150*/
     1151ODINFUNCTION3(DWORD,   SHLWAPI_346,
     1152              LPCWSTR, src,
     1153              LPWSTR,  dest,
     1154              int,     len)
     1155{
     1156  FIXME("(%s %p 0x%08x)stub\n",debugstr_w(src),dest,len);
     1157  lstrcpynW(dest, src, len);
     1158  return lstrlenW(dest)+1;
     1159}
     1160
     1161
     1162/*****************************************************************************
     1163 * Name      : SHLWAPI_364
     1164 * Purpose   : call lstrcpynA
     1165 * Parameters:
     1166 * Variables :
     1167 * Result    :
     1168 * Remark    : SHLWAPI.364
     1169 * Status    : UNTESTED
     1170 *
     1171 * Author    :
     1172 *****************************************************************************/
     1173
     1174ODINFUNCTION3(INT,   SHLWAPI_364,
     1175              LPSTR, lpStr1,
     1176              LPSTR, lpStr2,
     1177              INT,   nLength)
     1178{
     1179  // @@@PH is there some parameter twisting ?
     1180  lstrcpynA(lpStr2,
     1181            lpStr1,
     1182            nLength);
     1183 
     1184  return 1;
     1185}
     1186
     1187
     1188
     1189/*************************************************************************
     1190*      SHLWAPI_377 [SHLWAPI]
     1191*/
     1192ODINFUNCTION3(DWORD,  SHLWAPI_377,
     1193              LPVOID, x,
     1194              LPVOID, y,
     1195              LPVOID, z)
     1196{
     1197  FIXME("(%p %p %p)stub\n", x,y,z);
     1198  return 0xabba1246;
     1199}
     1200
     1201
     1202/*****************************************************************************
     1203 * Name      : DWORD SHLWAPI_437
     1204 * Purpose   : Determine product version and options
     1205 * Parameters:
     1206 * Variables :
     1207 * Result    :
     1208 * Remark    : SHLWAPI.437
     1209 * Status    : UNTESTED
     1210 *
     1211 * Author    : Patrick Haller [Sun, 2000/06/10 04:02]
     1212 *****************************************************************************/
     1213
     1214#define REG_PRODUCTOPTIONS "System\\CurrentControlSet\\Control\\ProductOptions"
     1215#define REG_OPTIONS_PRODUCTTYPE "ProductType"
     1216#define REG_OPTIONS_ENTERPRISE  "Enterprise"
     1217#define REG_OPTIONS_DATACENTER  "DataCenter"
     1218
     1219ODINFUNCTION1(DWORD,  SHLWAPI_437,
     1220              DWORD,  nFunction)
     1221{
     1222  static BOOL           flagProductOptionsInitialized = FALSE;
     1223  static BOOL           flagIsProductEnterprise       = FALSE;
     1224  static BOOL           flagIsProductDatacenter       = FALSE;
     1225  static OSVERSIONINFOA osVersionInfo;
     1226 
     1227  HKEY          hKeyOptions;
     1228  DWORD         dwKeyType;
     1229  char          szBuffer[260]; // MAX_PATH_LEN
     1230  DWORD         dwDataLength;
     1231 
     1232  dprintf(("not (properly) implemented.\n"));
     1233 
     1234  if (flagProductOptionsInitialized == FALSE)
     1235  {
     1236    // set to TRUE regardless of subsequent errors
     1237    flagProductOptionsInitialized = TRUE;
     1238   
     1239    // initialize required structures
     1240    osVersionInfo.dwOSVersionInfoSize = 0x9c;
     1241    if (GetVersionExA(&osVersionInfo) == FALSE)
     1242    {
     1243      osVersionInfo.dwOSVersionInfoSize = 0x94;
     1244      GetVersionExA(&osVersionInfo);
     1245    }
     1246   
     1247    LONG rc = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
     1248                           REG_PRODUCTOPTIONS,
     1249                           0,
     1250                           KEY_READ,
     1251                           &hKeyOptions);
     1252    if (rc == ERROR_SUCCESS)
     1253    {
     1254      dwDataLength = sizeof(szBuffer);
     1255      rc = RegQueryValueExA(hKeyOptions,
     1256                            REG_OPTIONS_PRODUCTTYPE,
     1257                            0,
     1258                            &dwKeyType,
     1259                            (LPBYTE)szBuffer,
     1260                            &dwDataLength);
     1261      if (StrStrIA(szBuffer, REG_OPTIONS_ENTERPRISE) != 0)
     1262        flagIsProductEnterprise = TRUE;
     1263      else
     1264      if (StrStrIA(szBuffer, REG_OPTIONS_DATACENTER) != 0)
     1265        flagIsProductDatacenter = TRUE;
     1266     
     1267      RegCloseKey(hKeyOptions);
     1268    }
     1269  }
     1270 
     1271  // OK, now to the usual work ...
     1272  switch (nFunction)
     1273  {
     1274    // is platform WINDOWS
     1275    case 0:
     1276      if (osVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
     1277        return 1;
     1278      else
     1279        return 0;
     1280   
     1281    // is platform NT
     1282    case 1:
     1283      if (osVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT)
     1284        return 1;
     1285      else
     1286        return 0;
     1287   
     1288    // is  platform Windows 95/98/xx ?
     1289    case 2:
     1290      if (osVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS)
     1291        return 0;
     1292      if (osVersionInfo.dwMajorVersion >= 4)
     1293        return 1;
     1294      else
     1295        return 0;
     1296   
     1297    // is platform NT4 or better?
     1298    case 3:
     1299      if (osVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT)
     1300        return 0;
     1301      if (osVersionInfo.dwMajorVersion >= 4)
     1302        return 1;
     1303      else
     1304        return 0;
     1305   
     1306    // is platform Win2000 or better?
     1307    case 4:
     1308      if (osVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT)
     1309        return 0;
     1310      if (osVersionInfo.dwMajorVersion >= 5)
     1311        return 1;
     1312      else
     1313        return 0;
     1314   
     1315    // at least Windows 4.10 ?
     1316    case 5:
     1317      if (osVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS)
     1318        return 0;
     1319      if (osVersionInfo.dwMajorVersion > 4)
     1320        return 1;
     1321      else
     1322        if (osVersionInfo.dwMajorVersion == 4)
     1323          if (osVersionInfo.dwMinorVersion >= 10)
     1324            return 1;
     1325   
     1326      return 0;
     1327   
     1328    // is platform Windows98 GA ?
     1329    case 6:
     1330      if ( (osVersionInfo.dwPlatformId   == VER_PLATFORM_WIN32_WINDOWS) &&
     1331           (osVersionInfo.dwMajorVersion == 4) &&
     1332           (osVersionInfo.dwMinorVersion == 10) &&
     1333           (osVersionInfo.dwBuildNumber  == 1998) ) // 0x7ce
     1334        return 1;
     1335      else
     1336        return 0;
     1337   
     1338    // is platform some specific CSD ?
     1339    case 7:
     1340    case 8:
     1341      //@@@PH incorrect
     1342      if (osVersionInfo.dwMajorVersion >= 5)
     1343        return 1;
     1344      else
     1345        return 0;
     1346   
     1347    case 9:
     1348      //@@@PH incorrect
     1349      if (osVersionInfo.dwMajorVersion >= 5 ||
     1350          flagIsProductEnterprise ||
     1351          flagIsProductDatacenter)
     1352        return 1;
     1353      else
     1354        return 0;
     1355 
     1356    case 10:
     1357      //@@@PH incorrect
     1358      if (osVersionInfo.dwMajorVersion >= 5)
     1359        return flagIsProductEnterprise;
     1360      else
     1361        return 0;
     1362   
     1363    case 11:
     1364      //@@@PH incorrect
     1365      if (osVersionInfo.dwMajorVersion >= 5)
     1366        return flagIsProductDatacenter;
     1367      else
     1368        return 0;
     1369         
     1370    // @@@PH: Oops, wazzup there ?
     1371    case 12:
     1372      return GetSystemMetrics(4096);
     1373  }
     1374 
     1375  return 0;
     1376}
     1377
     1378
     1379/*****************************************************************************
     1380 * Name      : SHIsLowMemoryMachine
     1381 * Purpose   :
     1382 * Parameters: BOOL fRetest - TRUE if testing shall be repeated
     1383 *                          - FALSE if cached result is to be used
     1384 * Variables :
     1385 * Result    : 0 - machine is not memory-constrained
     1386 *             1 - machine is memory-constrained
     1387 * Remark    : SHLWAPI.584
     1388 * Status    : UNTESTED
     1389 *
     1390 * Author    : Patrick Haller [Mon, 2000/06/11 02:02]
     1391 *****************************************************************************/
     1392
     1393ODINFUNCTION1(int,     SHIsLowMemoryMachine,
     1394              BOOL,    fRetest)
     1395{
     1396         MEMORYSTATUS memBuffer;
     1397  static int          flagIsLowMemoryMachine = -1;
     1398         ULONG        ulMem;
     1399 
     1400  // use cached result?
     1401  if ( (fRetest == TRUE) ||
     1402       (flagIsLowMemoryMachine == -1) )
     1403  {
     1404    // determine and store result
     1405    GlobalMemoryStatus(&memBuffer);
     1406    if (VERSION_OsIsUnicode())
     1407      ulMem = 0x1000000; // unicode operation mode
     1408    else
     1409      ulMem = 0x0800000; // ascii operation mode
     1410   
     1411    // enough memory?
     1412    if (memBuffer.dwTotalPhys <= ulMem)
     1413      flagIsLowMemoryMachine = 1;
     1414    else
     1415      flagIsLowMemoryMachine = 0;
     1416  }
     1417 
     1418  return flagIsLowMemoryMachine;
     1419}
  • trunk/src/shlwapi/reg.cpp

    r3539 r3687  
    1 /* $Id: reg.cpp,v 1.1 2000-05-15 02:43:16 phaller Exp $ */
     1/* $Id: reg.cpp,v 1.2 2000-06-12 08:09:39 phaller Exp $ */
    22
    33/*
     
    3737
    3838ODINDEBUGCHANNEL(SHLWAPI-REG)
     39
     40
     41/*****************************************************************************
     42 * Name      : DWORD SHRegCreateUSKeyA
     43 * Purpose   :
     44 * Parameters:
     45 * Variables :
     46 * Result    :
     47 * Remark    : SHLWAPI.594 SHLWAPI.SHRegCreateUSKeyA
     48 * Status    : UNTESTED
     49 *
     50 * Author    : Patrick Haller [Wed, 1999/12/29 23:02]
     51 *****************************************************************************/
     52
     53ODINFUNCTION5(DWORD,  SHRegCreateUSKeyA,
     54              LPSTR,  lpszKeyName,
     55              DWORD,  arg1,
     56              DWORD,  arg2,
     57              DWORD,  arg3,
     58              DWORD,  arg4)
     59{
     60  dprintf(("not implemented\n"));
     61  return 0;
     62}
     63
     64
     65/*****************************************************************************
     66 * Name      : DWORD SHRegCreateUSKeyW
     67 * Purpose   :
     68 * Parameters:
     69 * Variables :
     70 * Result    :
     71 * Remark    : SHLWAPI.595 SHLWAPI.SHRegCreateUSKeyW
     72 * Status    : UNTESTED
     73 *
     74 * Author    : Patrick Haller [Wed, 1999/12/29 23:02]
     75 *****************************************************************************/
     76
     77ODINFUNCTION5(DWORD,  SHRegCreateUSKeyW,
     78              LPWSTR, lpszKeyName,
     79              DWORD,  arg1,
     80              DWORD,  arg2,
     81              DWORD,  arg3,
     82              DWORD,  arg4)
     83{
     84  char szBuffer[256];
     85 
     86  // convert unicode to ascii
     87  if (0 == WideCharToMultiByte(0,
     88                               0,
     89                               lpszKeyName,
     90                               -1,
     91                               szBuffer,
     92                               sizeof(szBuffer),
     93                               0,
     94                               0))
     95    return GetLastError();
     96 
     97  return SHRegCreateUSKeyA(szBuffer,
     98                         arg1,
     99                         arg2,
     100                         arg3,
     101                         arg4);
     102}
    39103
    40104
     
    160224
    161225
     226/*****************************************************************************
     227 * Name      : DWORD SHRegSetUSValueA
     228 * Purpose   :
     229 * Parameters:
     230 * Variables :
     231 * Result    :
     232 * Remark    : SHLWAPI.SHRegSetUSValueA SHLWAPI.615
     233 * Status    : UNTESTED
     234 *
     235 * Author    : Patrick Haller [Wed, 1999/12/29 23:02]
     236 *****************************************************************************/
     237
     238ODINFUNCTION6(LONG,    SHRegSetUSValueA,
     239              HKEY,    hKey,
     240              DWORD,   arg2,
     241              DWORD,   arg3,
     242              DWORD,   arg4,
     243              DWORD,   arg5,
     244              DWORD,   arg6)
     245{
     246  LONG rc;
     247 
     248#if 0
     249  rc = SHRegCreateUSKeyA(hKey,
     250                         3,
     251                         0,
     252                         &hKey);
     253  if (rc == ERROR_SUCCESS)
     254  {
     255    rc = SHRegWriteUSValueA(hKey,
     256                            arg2,
     257                            arg3,
     258                            arg4,
     259                            arg5,
     260                            arg6);
     261    SHRegCloseUSKey(hKey);
     262  }
     263#endif
     264 
     265  return rc;
     266}
     267
     268
     269
     270
     271/*****************************************************************************
     272 * Name      : DWORD SHRegSetUSValueW
     273 * Purpose   :
     274 * Parameters:
     275 * Variables :
     276 * Result    :
     277 * Remark    : SHLWAPI.SHRegSetUSValueW SHLWAPI.616
     278 * Status    : UNTESTED
     279 *
     280 * Author    : Patrick Haller [Wed, 1999/12/29 23:02]
     281 *****************************************************************************/
     282
     283ODINFUNCTION6(LONG,    SHRegSetUSValueW,
     284              HKEY,    hKey,
     285              DWORD,   arg2,
     286              DWORD,   arg3,
     287              DWORD,   arg4,
     288              DWORD,   arg5,
     289              DWORD,   arg6)
     290{
     291  LONG rc;
     292 
     293#if 0
     294  rc = SHRegCreateUSKeyW(hKey,
     295                         3,
     296                         0,
     297                         &hKey);
     298  if (rc == ERROR_SUCCESS)
     299  {
     300    rc = SHRegWriteUSValueW(hKey,
     301                            arg2,
     302                            arg3,
     303                            arg4,
     304                            arg5,
     305                            arg6);
     306    SHRegCloseUSKey(hKey);
     307  }
     308#endif
     309 
     310  return rc;
     311}
     312
     313
  • trunk/src/shlwapi/shlwapi.cpp

    r3684 r3687  
    1 /* $Id: shlwapi.cpp,v 1.7 2000-06-11 08:44:54 phaller Exp $ */
     1/* $Id: shlwapi.cpp,v 1.8 2000-06-12 08:09:40 phaller Exp $ */
    22
    33/*
     
    1212 * Copyright 1997 Uwe Bonnes
    1313 * Copyright 1999 Jens Wiessner
     14 *
     15 * Two functions (WINE_StringFromCLSID and StringFromGUID2) are directly
     16 * borrowed from ole32/clsid.cpp. This is to avoid the direct dependency
     17 * between SHLWAPI.DLL and the OLE32.DLL.
    1418 */
    1519
     
    3943#include <win\winerror.h>
    4044
     45// import OLE support
     46#include <win/wtypes.h>
     47#define OLE_OK 0
     48
    4149
    4250ODINDEBUGCHANNEL(SHLWAPI)
     
    5765}
    5866
     67
     68// ----------------------------------------------------------------------
     69// WINE_StringFromCLSID
     70// ----------------------------------------------------------------------
     71HRESULT WINAPI WINE_StringFromCLSID(const CLSID *rclsid, LPSTR idstr)
     72{
     73//    dprintf(("OLE32: WINE_StringFromCLSID"));
     74
     75    if (rclsid == NULL)
     76    {
     77        dprintf(("       clsid: (NULL)"));
     78        *idstr = 0;
     79        return E_FAIL;
     80    }
     81
     82    // Setup new string...
     83    sprintf(idstr, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
     84            rclsid->Data1,
     85            rclsid->Data2,
     86            rclsid->Data3,
     87            rclsid->Data4[0],
     88            rclsid->Data4[1],
     89            rclsid->Data4[2],
     90            rclsid->Data4[3],
     91            rclsid->Data4[4],
     92            rclsid->Data4[5],
     93            rclsid->Data4[6],
     94            rclsid->Data4[7]);
     95
     96//    dprintf(("       clsid: %s", idstr));
     97
     98    return OLE_OK;
     99}
     100
     101// ----------------------------------------------------------------------
     102// StringFromGUID2
     103// ----------------------------------------------------------------------
     104int WINAPI StringFromGUID2(REFGUID rguid, LPOLESTR lpsz, int cbMax)
     105{
     106// NB cbMax is a CHARACTER count not a BYTE count... :-)
     107    char        tmp[50];
     108    size_t      strLen;
     109
     110    // Setup new string...
     111    WINE_StringFromCLSID(rguid, tmp);
     112
     113    strLen = (strlen(tmp) + 1);
     114    if (strLen > cbMax)
     115        strLen = cbMax;
     116
     117    AsciiToUnicodeN(tmp, lpsz, strLen);
     118
     119    return strLen;  // Num CHARACTERS including 0 terminator
     120}
     121
     122
     123/*****************************************************************************
     124 * Name      : DllGetVersion
     125 * Purpose   : Return version information about the DLL used
     126 * Parameters:
     127 * Variables :
     128 * Result    :
     129 * Remark    : SHLWAPI.446
     130 * Status    : UNTESTED
     131 *
     132 * Author    :
     133 *****************************************************************************/
     134
     135typedef struct tagDLLVERSION
     136{
     137  DWORD dwLength; // == 0x14
     138  DWORD dwMajorVersion;
     139  DWORD dwMinorVersion;
     140  DWORD dwRevision;
     141  DWORD dwBuildNumber;
     142} DLLVERSION, *LPDLLVERSION;
     143
     144
     145ODINFUNCTION1(DWORD,        DllGetVersion,
     146              LPDLLVERSION, lpBuffer)
     147{
     148  if (lpBuffer == NULL)
     149    return E_INVALIDARG; // error code: invalid parameters
     150
     151  if (IsBadWritePtr(lpBuffer,
     152                    20))
     153    return E_INVALIDARG;
     154 
     155  if (lpBuffer->dwLength != sizeof(DLLVERSION))
     156    return E_INVALIDARG;
     157     
     158  // our current version is 5.0.2314.1000
     159  lpBuffer->dwMajorVersion = 5;
     160//lpBuffer->dwMinorVersion = 0;  // @@@PH not touched in windows code ?
     161  lpBuffer->dwRevision     = 2314;
     162  lpBuffer->dwBuildNumber  = 1;
     163 
     164  return ERROR_SUCCESS;
     165}
  • trunk/src/shlwapi/shlwapi.def

    r3684 r3687  
    1 ; $Id: shlwapi.def,v 1.15 2000-06-11 08:44:55 phaller Exp $
     1; $Id: shlwapi.def,v 1.16 2000-06-12 08:09:41 phaller Exp $
    22
    33; updated export ordinals to NT4 SP6 version of SHLWAPI.DLL
    44; Note: W95/W98 has DIFFERENT export ordinals
     5;
     6; Note: Internet Explorer 5 brought the DLL to level
     7;       5-0-2314-1000
    58
    69LIBRARY SHLWAPI INITINSTANCE TERMINSTANCE
     
    3134                             _SHLWAPI_15@8                        @15
    3235    SHCreateThread         = _SHCreateThread@16                   @16
    33 
     36                             _SHLWAPI_17@8                        @17
     37                             _SHLWAPI_18@8                        @18
     38                             _SHLWAPI_19@4                        @19
     39                             _SHLWAPI_20@8                        @20
     40                             _SHLWAPI_21@8                        @21
     41                             _SHLWAPI_22@8                        @22
    3442                             _SHLWAPI_23@12                       @23
     43                             _SHLWAPI_24@12                       @24
    3544                             _SHLWAPI_28@4                        @28
    36                              _CallWindowProcAW@20                 @37
    37                              _SHLWAPI_38@4                        @38
    38                              _SHLWAPI_40@4                        @40
    39                              _SHLWAPI_43@4                        @43
    40                              _SHLWAPI_53@4                        @53
    41                              _sDefWindowProcAW@16                 @56
    42                              _SHLWAPI_59@20                       @59
    43                              _DispatchMessageAW@4                 @60
    44                              _SHLWAPI_74@16                       @74
    45                              _GetModuleHandleAW@4                 @83
    46                              _GetWindowLongAW@8                   @94
    47                              _SHLWAPI_95@12                       @95
    48                              _LoadCursorAW@8                      @102
    49                              _PeekMessageAW@20                    @116
    50                              _PostMessageAW@16                    @117
     45                             _SHLWAPI_30@4                        @30
     46
     47                             _CallWindowProcW@20                  @37
     48                             _CharLowerW@4                        @38
     49                             _CharLowerBuffW@8                    @39
     50                             _CharNextW@4                         @40
     51                             _CharPrevW@8                         @41
     52                             _CharToOemW@8                        @42
     53                             _CharUpperW@4                        @43
     54                             _CharUpperBuffW@8                    @44
     55                             _CompareStringW@24                   @45
     56                             _CopyAcceleratorTableW@12            @46
     57                             _CreateAcceleratorTableW@8           @47
     58                             _CreateDCW@16                        @48
     59                             _CreateDialogParamW@20               @49 ; @@@PH imcomplete
     60                             _CreateDirectoryW@8                  @50
     61                             _CreateEventW@16                     @51
     62                             _CreateFileW@28                      @52
     63                             _CreateFontIndirectW@4               @53
     64                             _CreateICW@16                        @54
     65                             _CreateWindowExW@48                  @55
     66                             _DefWindowProcW@16                   @56
     67                             _DeleteFileW@4                       @57
     68                             _DialogBoxIndirectParamW@20          @58 ; @@@PH imcomplete
     69                             _DialogBoxParamW@20                  @59 ; @@@PH imcomplete
     70                             _DispatchMessageW@4                  @60
     71                             _DrawTextW@20                        @61
     72                             _EnumFontFamiliesW@16                @62
     73                             _EnumFontFamiliesExW@20              @63
     74                             _EnumResourceNamesW@16               @64
     75                             _FindFirstFileW@8                    @65
     76                             _FindResourceW@12                    @66
     77                             _FindWindowW@8                       @67
     78                             _FormatMessageW@28                   @68
     79                             _GetClassInfoW@12                    @69
     80                             _GetClassLongW@8                     @70
     81                             _GetClassNameW@12                    @71
     82                             _GetClipboardFormatNameW@12          @72
     83                             _GetCurrentDirectoryW@8              @73
     84                             _GetDlgItemTextW@16                  @74
     85                             _GetFileAttributesW@4                @75
     86                             _GetFullPathNameW@16                 @76
     87                             _GetLocaleInfoW@16                   @77
     88                             _GetMenuItemInfoW@16                 @78
     89                             _GetMessageW@16                      @79
     90                             _GetModuleFileNameW@12               @80
     91                             _GetSystemDirectoryW@8               @81
     92                             _SearchPathW@24                      @82
     93                             _GetModuleHandleW@4                  @83
     94                             _GetObjectW@12                       @84
     95                             _GetPrivateProfileIntW@16            @85
     96                             _GetProfileStringW@20                @86
     97                             _GetPropW@8                          @87
     98                             _GetStringTypeExW@20                 @88
     99                             _GetTempFileNameW@16                 @89
     100                             _GetTempPathW@8                      @90
     101                             _GetTextExtentPoint32W@16            @91
     102                             _GetTextFaceW@12                     @92
     103                             _GetTextMetricsW@8                   @93
     104                             _GetWindowLongW@8                    @94
     105                             _GetWindowTextW@12                   @95
     106                             _GetWindowTextLengthW@4              @96
     107                             _GetWindowsDirectoryW@8              @97
     108                             _InsertMenuW@20                      @98 ; @@@PH imcomplete
     109                             _IsDialogMessageW@8                  @99
     110                             _LoadAcceleratorsW@8                 @100
     111                             _LoadBitmapW@8                       @101
     112                             _LoadCursorW@8                       @102
     113                             _LoadIconW@8                         @103
     114                             _LoadImageW@24                       @104
     115                             _LoadLibraryExW@12                   @105
     116                             _LoadMenuW@8                         @106
     117                             _LoadStringW@16                      @107
     118                             _MessageBoxIndirectW@4               @108
     119                             _ModifyMenuW@20                      @109
     120                             _GetCharWidth32W@16                  @110
     121                             _GetCharacterPlacementW@24           @111
     122                             _CopyFileW@12                        @112
     123                             _MoveFileW@8                         @113
     124                             _OemToCharW@8                        @114
     125                             _OutputDebugStringW@4                @115
     126                             _PeekMessageW@20                     @116
     127                             _PostMessageW@16                     @117
     128                             _PostThreadMessageW@16               @118
     129                             _RegCreateKeyW@12                    @119
     130                             _RegCreateKeyExW@36                  @120
     131                             _RegDeleteKeyW@8                     @121
     132                             _RegEnumKeyW@16                      @122
     133                             _RegEnumKeyExW@32                    @123
     134                             _RegOpenKeyW@12                      @124
     135                             _RegOpenKeyExW@20                    @125
     136                             _RegQueryInfoKeyW@48                 @126
     137                             _RegQueryValueW@16                   @127
     138                             _RegQueryValueExW@24                 @128
     139                             _RegSetValueW@20                     @129
     140                             _RegSetValueExW@24                   @130
     141                             _RegisterClassW@4                    @131
     142                             _RegisterClipboardFormatW@4          @132
     143                             _RegisterWindowMessageW@4            @133
     144                             _RemovePropW@8                       @134
     145                             _SendDlgItemMessageW@20              @135
     146                             _SendMessageW@16                     @136
     147                             _SetCurrentDirectoryW@4              @137
     148                             _SetDlgItemTextW@12                  @138
     149                             _SetMenuItemInfoW@16                 @139 ; @@@PH imcomplete
     150                             _SetPropW@12                         @140
     151                             _SetWindowLongW@12                   @141
     152                             _SetWindowsHookExW@16                @142
     153                             _SetWindowTextW@8                    @143
     154                             _StartDocW@8                         @144
     155                             _SystemParametersInfoW@16            @145
     156                             _TranslateAcceleratorW@12            @146
     157                             _UnregisterClassW@8                  @147
     158                             _VkKeyScanW@4                        @148
     159                             _WinHelpW@16                         @149
     160                             _wvsprintfW@12                       @150
     161
     162                             _SHLWAPI_156@8                       @156
    51163                             _SHLWAPI_158@8                       @158
     164                             _SHLWAPI_160@8                       @160
     165                             _SHLWAPI_169@4                       @169
     166                             _SHLWAPI_170@4                       @170
     167                             _SHLWAPI_193@0                       @193
    52168                             _SHLWAPI_197@12                      @197
     169                             _SHLWAPI_219@16                      @219
     170                             _SHLWAPI_222@4                       @222
     171                             _SHLWAPI_223@4                       @223
     172                             _SHLWAPI_237@4                       @237
    53173                             _DefWindowProcAW@16                  @240
     174                             _SHLWAPI_241@0                       @241
     175;   AssocCreate            = _AssocCreate@20                      @253
     176;   AssocQueryKeyA         = _AssocQueryKeyA@20                   @254
     177                             _SHLWAPI_266@16                      @266
     178                             _SHLWAPI_267@16                      @267
     179                             _SHLWAPI_268@8                       @268
     180                             _SHLWAPI_276@0                       @276
     181                             _SHLWAPI_309@4                       @309
     182                             _RegisterClassExW@4                  @314
     183                             _CallMsgFilterW@8                    @332
     184                             _FindNextFileW@8                     @341
     185                             _SHLWAPI_342@16                      @342
     186                             _SHLWAPI_346@12                      @346
     187                             _SHLWAPI_364@12                      @364
     188                             _SHLWAPI_377@12                      @377
     189;   AssocQueryStringA      = _AssocQueryStringA@20                @381
     190;   AssocQueryStringByKeyA = _AssocQueryStringByKeyA@20           @382
     191    ChrCmpIA               = _ChrCmpIA@8                          @385
     192  ; ChrCmpIW               = _ChrCmpIW@?                          @386
     193
     194;                            _SHLWAPI_407@16                      @407
     195;                            _SHLWAPI_408@16                      @408
     196;                            _SHLWAPI_409@12                      @409
     197;                            _SHLWAPI_410@12                      @410
     198
     199                             _SHLWAPI_437@4                       @437
     200    DllGetVersion          = _DllGetVersion@4                     @446
     201  ; GetMenuPosFromID       = _GetMenuPosFromID@?                  @447
     202;   HashData               = _HashData@16                         @448
     203  ; IntlStrEqWorkerA       = _StrIsIntlEqualA@16                  @449
     204  ; IntlStrEqWorkerW       = _StrIsIntlEqualw@16                  @450
     205    PathAddBackslashA      = _PathAddBackslashA@4                 @451
     206    PathAddBackslashW      = _PathAddBackslashW@4                 @452
     207    PathAddExtensionA      = _PathAddExtensionA@8                 @453
     208    PathAddExtensionW      = _PathAddExtensionW@8                 @454
     209    PathAppendA            = _PathAppendA@8                       @455
     210    PathAppendW            = _PathAppendW@8                       @456
     211    PathBuildRootA         = _PathBuildRootA@8                    @457
     212    PathBuildRootW         = _PathBuildRootW@8                    @458
     213    PathCanonicalizeA      = _PathCanonicalizeA@8                 @459
     214    PathCanonicalizeW      = _PathCanonicalizeW@8                 @460
     215    PathCombineA           = _PathCombineA@12                     @461
     216    PathCombineW           = _PathCombineW@12                     @462
     217  ; PathCommonPrefixA      = _PathCommonPrefixA@12                @463
     218  ; PathCommonPrefixW      = _PathCommonPrefixW@?                 @464
     219  ; PathCompactPathA       = _PathCompactPathA@12                 @465
     220  ; PathCompactPathExA     = _PathCompactPathExA@12               @466
     221  ; PathCompactPathExW     = _PathCompactPathExW@12               @467
     222  ; PathCompactPathW       = _PathCompactPathW@12                 @468
     223  ; PathCreateFromUrlA     = _PathCreateFromUrlA@?                @469
     224  ; PathCreateFromUrlW     = _PathCreateFromUrlW@?                @470
     225    PathFileExistsA        = _PathFileExistsA@4                   @471
     226    PathFileExistsW        = _PathFileExistsW@4                   @472
     227    PathFindExtensionA     = _PathFindExtensionA@4                @473
     228    PathFindExtensionW     = _PathFindExtensionW@4                @474
     229    PathFindFileNameA      = _PathFindFileNameA@4                 @475
     230    PathFindFileNameW      = _PathFindFileNameW@4                 @476
     231    PathFindNextComponentA = _PathFindNextComponentA@4            @477
     232    PathFindNextComponentW = _PathFindNextComponentW@4            @478
     233    PathFindOnPathA        = _PathFindOnPathA@8                   @479
     234    PathFindOnPathW        = _PathFindOnPathW@8                   @480
     235;   PathFindSuffixArrayA   = _PathFindSuffixArrayA@12             @481
     236;   PathFindSuffixArrayW   = _PathFindSuffixArrayW@12             @482
     237    PathGetArgsA           = _PathGetArgsA@4                      @483
     238    PathGetArgsW           = _PathGetArgsW@4                      @484
     239  ; PathGetCharTypeA       = _PathGetCharTypeA@?                  @485
     240  ; PathGetCharTypeW       = _PathGetCharTypeW@?                  @486
     241    PathGetDriveNumberA    = _PathGetDriveNumberA@4               @487
     242    PathGetDriveNumberW    = _PathGetDriveNumberW@4               @488
     243  ; PathIsContentTypeA     = _PathIsContentTypeA@8                @489
     244  ; PathIsContentTypeW     = _PathIsContentTypeW@8                @490
     245    PathIsDirectoryA       = _PathIsDirectoryA@4                  @491
     246;   PathIsDirectoryEmptyA  = _PathIsDirectoryEmptyA@4             @492
     247;   PathIsDirectoryEmptyW  = _PathIsDirectoryEmptyW@4             @493
     248  ; PathIsDirectoryW       = _PathIsDirectoryW@?                  @494
     249  ; PathIsFileSpecA        = _PathIsFileSpecA@?                   @495
     250  ; PathIsFileSpecW        = _PathIsFileSpecW@?                   @496
     251;   PathIsLFNFileSpecA     = _PathIsLFNFileSpecA@4                @497
     252;   PathIsLFNFileSpecW     = _PathIsLFNFileSpecW@4                @498
     253;   PathIsNetworkPathA     = _PathIsNetworkPathA@4                @499
     254;   PathIsNetworkPathW     = _PathIsNetworkPathW@4                @500
     255  ; PathIsPrefixA          = _PathIsPrefixA@8                     @501
     256  ; PathIsPrefixW          = _PathIsPrefixW@?                     @502
     257    PathIsRelativeA        = _PathIsRelativeA@4                   @503
     258    PathIsRelativeW        = _PathIsRelativeW@4                   @504
     259    PathIsRootA            = _PathIsRootA@4                       @505
     260    PathIsRootW            = _PathIsRootW@4                       @506
     261    PathIsSameRootA        = _PathIsSameRootA@8                   @507
     262    PathIsSameRootW        = _PathIsSameRootW@8                   @508
     263  ; PathIsSystemFolderA    = _PathIsSystemFolderA@8               @509
     264  ; PathIsSystemFolderW    = _PathIsSystemFolderW@8               @510
     265    PathIsUNCA             = _PathIsUNCA@4                        @511
     266  ; PathIsUNCServerA       = _PathIsUNCServerA@?                  @512
     267  ; PathIsUNCServerShareA  = _PathIsUNCServerShareA@?             @513
     268  ; PathIsUNCServerShareW  = _PathIsUNCServerShareW@?             @514
     269  ; PathIsUNCServerW       = _PathIsUNCServerW@?                  @515
     270    PathIsUNCW             = _PathIsUNCW@4                        @516
     271    PathIsURLA             = _PathIsURLA@4                        @517
     272    PathIsURLW             = _PathIsURLW@4                        @518
     273  ; PathMakePrettyA        = _PathMakePrettyA@?                   @519
     274  ; PathMakePrettyW        = _PathMakePrettyW@?                   @520
     275  ; PathMakeSystemFolderA  = _PathMakeSystemFolderA@4             @521
     276  ; PathMakeSystemFolderW  = _PathMakeSystemFolderW@4             @522
     277    PathMatchSpecA         = _PathMatchSpecA@8                    @523
     278    PathMatchSpecW         = _PathMatchSpecW@8                    @524
     279    PathParseIconLocationA = _PathParseIconLocationA@4            @525
     280    PathParseIconLocationW = _PathParseIconLocationW@4            @526
     281    PathQuoteSpacesA       = _PathQuoteSpacesA@4                  @527
     282    PathQuoteSpacesW       = _PathQuoteSpacesW@4                  @528
     283  ; PathRelativePathToA    = _PathRelativePathToA@?               @529
     284  ; PathRelativePathToW    = _PathRelativePathToW@?               @530
     285    PathRemoveArgsA        = _PathRemoveArgsA@4                   @531
     286    PathRemoveArgsW        = _PathRemoveArgsW@4                   @532
     287    PathRemoveBackslashA   = _PathRemoveBackslashA@4              @533
     288    PathRemoveBackslashW   = _PathRemoveBackslashW@4              @534
     289    PathRemoveBlanksA      = _PathRemoveBlanksA@4                 @535
     290    PathRemoveBlanksW      = _PathRemoveBlanksW@4                 @536
     291    PathRemoveExtensionA   = _PathRemoveExtensionA@4              @537
     292    PathRemoveExtensionW   = _PathRemoveExtensionW@4              @538
     293    PathRemoveFileSpecA    = _PathRemoveFileSpecA@4               @539
     294    PathRemoveFileSpecW    = _PathRemoveFileSpecW@4               @540
     295  ; PathRenameExtensionA   = _PathRenameExtensionA@@8             @541
     296  ; PathRenameExtensionW   = _PathRenameExtensionW@?              @542
     297  ; PathSearchAndQualifyA  = _PathSearchAndQualifyA@12            @543
     298  ; PathSearchAndQualifyW  = _PathSearchAndQualifyW@12            @544
     299    PathSetDlgItemPathA    = _PathSetDlgItemPathA@12              @545
     300    PathSetDlgItemPathW    = _PathSetDlgItemPathW@12              @546
     301    PathSkipRootA          = _PathSkipRootA@4                     @547
     302    PathSkipRootW          = _PathSkipRootW@4                     @548
     303    PathStripPathA         = _PathStripPathA@4                    @549
     304    PathStripPathW         = _PathStripPathW@4                    @550
     305    PathStripToRootA       = _PathStripToRootA@4                  @551
     306    PathStripToRootW       = _PathStripToRootW@4                  @552
     307;   PathUndecorateA        = _PathUndecorateA@4                   @553
     308;   PathUndecorateW        = _PathUndecorateW@4                   @554
     309  ; PathUnmakeSystemFolderA= _PathUnmakeSystemFolderA@4           @555
     310  ; PathUnmakeSystemFolderW= _PathUnmakeSystemFolderW@4           @556
     311    PathUnquoteSpacesA     = _PathUnquoteSpacesA@4                @557
     312    PathUnquoteSpacesW     = _PathUnquoteSpacesW@4                @558
     313
     314;   SHAutoComplete         = _SHAutoComplete@8                    @559
     315  ; SHCopyKeyA             = _SHCopyKeyA@?                        @560
     316  ; SHCopyKeyW             = _SHCopyKeyW@?                        @561
     317  ; SHCreateShellPalette   = _SHCreateShellPalette@?              @562
     318  ; SHCreateStreamOnFileA  = _SHCreateStreamOnFileA@?             @563
     319  ; SHCreateStreamOnFileW  = _SHCreateStreamOnFileW@?             @564
     320  ; SHCreateStreamWrapper  = _SHCreateStreamWrapper@?             @565
     321                             _SHCreateThread@16                   @566
     322  ; SHDeleteEmptyKeyA      = _SHDeleteEmptyKeyA@?                 @567
     323  ; SHDeleteEmptyKeyW      = _SHDeleteEmptyKeyW@?                 @568
     324  ; SHDeleteKeyA           = _SHDeleteKeyA@?                      @569
     325  ; SHDeleteKeyW           = _SHDeleteKeyW@?                      @570
     326  ; SHDeleteOrphanKeyA     = _SHDeleteOrphanKeyA@?                @571
     327  ; SHDeleteOrphanKeyW     = _SHDeleteOrphanKeyW@?                @572
     328  ; SHDeleteValueA         = _SHDeleteValueA@?                    @573
     329  ; SHDeleteValueW         = _SHDeleteValueW@?                    @574
     330  ; SHEnumKeyExA           = _SHEnumKeyExA@?                      @575
     331  ; SHEnumKeyExW           = _SHEnumKeyExW@?                      @576
     332  ; SHEnumValueA           = _SHEnumValueA@?                      @577
     333  ; SHEnumValueW           = _SHEnumValueW@?                      @578
     334;   _SHGetInstanceExplorer@4 = ????                               @579
     335  ; SHGetInverseCMAP       = _SHGetInverseCMAP@?                  @580
     336;   SHGetThreadRef         = _SHGetThreadRef@?                    @581
     337    SHGetValueA            = _SHGetValueA@24                      @582
     338    SHGetValueW            = _SHGetValueW@24                      @583
     339    SHIsLowMemoryMachine   = _SHIsLowMemoryMachine@4              @584
     340  ; SHOpenRegStream2A      = _SHOpenRegStream2A@?                 @585
     341  ; SHOpenRegStream2W      = _SHOpenRegStream2W@?                 @586
     342  ; SHOpenRegStreamA       = _SHOpenRegStreamA@?                  @587
     343  ; SHOpenRegStreamW       = _SHOpenRegStreamW@?                  @588
     344  ; SHQueryInfoKeyA        = _SHQueryInfoKeyA@?                   @589
     345  ; SHQueryInfoKeyW        = _SHQueryInfoKeyW@?                   @590
     346  ; SHQueryValueExA        = _SHQueryValueExA@?                   @591
     347  ; SHQueryValueExW        = _SHQueryValueExW@?                   @592
     348  ; SHRegCloseUSKey        = _SHRegCloseUSKey@?                   @593
     349    SHRegCreateUSKeyA      = _SHRegCreateUSKeyA@20                @594
     350    SHRegCreateUSKeyW      = _SHRegCreateUSKeyW@20                @595
     351  ; SHRegDeleteEmptyUSKeyA = _SHRegDeleteEmptyUSKeyA@?            @596
     352  ; SHRegDeleteEmptyUSKeyW = _SHRegDeleteEmptyUSKeyW@?            @597
     353  ; SHRegDeleteUSKeyA      = _SHRegDeleteUSKeyA@?                 @598
     354  ; SHRegDeleteUSKeyW      = _SHRegDeleteUSKeyW@?                 @599
     355  ; SHRegDuplicateHKey     = _SHRegDuplicateHKey@?                @600
     356  ; SHRegEnumUSKeyA        = _SHRegEnumUSKeyA@?                   @601
     357  ; SHRegEnumUSKeyW        = _SHRegEnumUSKeyW@?                   @602
     358  ; SHRegEnumUSValueA      = _SHRegEnumUSValueA@?                 @603
     359  ; SHRegEnumUSValueA      = _SHRegEnumUSValueW@?                 @604
     360    SHRegGetBoolUSValueA   = _SHRegGetBoolUSValueA@20             @605
     361    SHRegGetBoolUSValueW   = _SHRegGetBoolUSValueW@20             @606
     362    SHRegGetUSValueA       = _SHRegGetUSValueA@32                 @607
     363    SHRegGetUSValueW       = _SHRegGetUSValueW@32                 @608
     364  ; SHRegOpenUSKeyA        = _SHRegOpenUSKeyA@?                   @609
     365  ; SHRegOpenUSKeyW        = _SHRegOpenUSKeyW@?                   @610
     366  ; SHRegQueryInfoKeyA     = _SHRegQueryInfoKeyA@?                @611
     367  ; SHRegQueryInfoKeyW     = _SHRegQueryInfoKeyW@?                @612
     368  ; SHRegQueryUSValueA     = _SHRegQueryUSValueA@?                @613
     369  ; SHRegQueryUSValueW     = _SHRegQueryUSValueW@?                @614
     370    SHRegSetUSValueA       = _SHRegSetUSValueA@24                 @615
     371    SHRegSetUSValueW       = _SHRegSetUSValueW@24                 @616
     372;   SHRegWriteUSValueA     = _SHRegWriteUSValueA@?                @617
     373;   SHRegWriteUSValueW     = _SHRegWriteUSValueW@?                @618
     374;   SHSetSetThreadRef      = _SHSetThreadRef@?                    @619
     375;   SHSetValueA            = _SHSetValueA@?                       @620
     376;   SHSetValueW            = _SHSetValueW@?                       @621
     377;   SHSkipJunction         = _SHSkipJunction@8                    @622
     378;   SHStrDupA              = _SHStrDupA@?                         @623
     379;   SHStrDupW              = _SHStrDUpW@?                         @624
     380  ; StrCSpnA               = _StrCSpnA@?                          @625
     381  ; StrCSpnIA              = _StrCSpnIA@?                         @626
     382  ; StrCSpnIW              = _StrCSpnIW@?                         @627
     383  ; StrCSpnW               = _StrCSpnW@?                          @628
     384;   StrCatBuffA            = _StrCatBuffA@?                       @629
     385;   StrCatBuffW            = _StrCatBuffW@?                       @630
     386  ; StrCatA                = _StrCatA@?                                 ; not exported ?
     387  ; StrCatW                = _StrCatW@?                           @631
     388    StrChrA                = _StrChrA@8                           @632
     389    StrChrIA               = _StrChrIA@8                          @633
     390    StrChrIW               = _StrChrIW@8                          @634
     391    StrChrW                = _StrChrW@8                           @635
     392  ; StrCmpIW               = _StrCmpIW@?                          @636
     393  ; StrCmpNA               = _StrCmpNA@12                         @637
     394    StrCmpNIA              = _StrCmpNIA@12                        @638
     395    StrCmpNIW              = _StrCmpNIW@12                        @639
     396  ; StrCmpNW               = _StrCmpNW@12                         @640
     397  ; StrCmpW                = _StrCmpW@?                           @641
     398  ; StrCpyNW               = _StrCpyNW@?                          @642
     399    StrCpyA                = _StrCpyA@8                                 ; not exported ?
     400    StrCpyW                = _StrCpyW@8                           @643
     401  ; StrDupA                = _StrDupA@?                           @644
     402    StrDupW                = _StrDupW@4                           @645
     403;   StrFormatByteSize64A   = _StrFormatByteSize64A@16             @646
     404    StrFormatByteSizeA     = _StrFormatByteSizeA@12               @647
     405    StrFormatByteSizeW     = _StrFormatByteSizeW@12               @648
     406;   StrFormatKBSizeA       = _StrFormatKBSizeA@16                 @649
     407;   StrFormatKBSizeW       = _StrFormatKBSizeW@16                 @650
     408  ; StrFromTimeIntervalA   = _StrFromTimeIntervalA@?              @651
     409  ; StrFromTimeIntervalW   = _StrFromTimeIntervalW@?              @652
     410  ; IntlStrEqWorkerA       = _StrIsIntlEqualA@16                  @653
     411  ; StrIsIntlEqualW        = _StrIsIntlEqualW@?                   @654
     412  ; StrNCatA               = _StrNCatA@?                          @655
     413  ; StrNCatW               = _StrNCatW@12                         @656
     414  ; StrPBrkA               = _StrPBrkA@?                          @657
     415  ; StrPBrkW               = _StrPBrkW@?                          @658
     416    StrRChrA               = _StrRChrA@12                         @659
     417  ; StrRChrIA              = _StrRChrIA@12                        @660
     418  ; StrRChrIW              = _StrRChrIW@12                        @661
     419    StrRChrW               = _StrRChrW@12                         @662
     420  ; StrRStrIA              = _StrRStrIA@?                         @663
     421  ; StrRStrIW              = _StrRStrIW@?                         @664
     422;   StrRetToBufA           = _StrRetToBufA@16                     @665
     423;   StrRetToBufW           = _StrRetToBufW@16                     @666
     424;   StrRetToStrA           = _StrRetToStrA@12                     @667
     425;   StrRetToStrW           = _StrRetToStrW@12                     @668
     426  ; StrSpnA                = _StrSpnA@?                           @669
     427  ; StrSpnW                = _StrSpnW@?                           @670
     428  ; StrStrA                = _StrStrA@8                           @671
     429    StrStrIA               = _StrStrIA@8                          @672
     430    StrStrIW               = _StrStrIW@8                          @673
     431  ; StrStrW                = _StrStrW@8                           @674
    54432    StrToIntA              = _StrToIntA@4                         @675
    55     PathFindOnPathA        = _PathFindOnPathA@8                   @479
    56 
    57 
    58 
    59 ; --------------
    60 ; Export by name
    61 ; --------------
    62 
    63   ; ChrCmpIA               = _ChrCmpIA@?                          @162
    64   ; ChrCmpIW               = _ChrCmpIW@?                          @163
    65   ; DllGetVersion          = _DllGetVersion@?                     @164
    66   ; GetMenuPosFromID       = _GetMenuPosFromID@?                  @165
    67   ; HashData               = _HashData@?                          @166
    68   ; IntlStrEqWorkerA       = _IntlStrEqWorkerA@?                  @167
    69   ; IntlStrEqWorkerW       = _IntlStrEqWorkerW@?                  @168
    70     PathAddBackslashA      = _PathAddBackslashA@4                 @169
    71     PathAddBackslashW      = _PathAddBackslashW@4                 @170
    72     PathAddExtensionA      = _PathAddExtensionA@8                 @171
    73     PathAddExtensionW      = _PathAddExtensionW@8                 @172
    74     PathAppendA            = _PathAppendA@8                       @173
    75     PathAppendW            = _PathAppendW@8                       @174
    76     PathBuildRootA         = _PathBuildRootA@8                    @175
    77     PathBuildRootW         = _PathBuildRootW@8                    @176
    78     PathCanonicalizeA      = _PathCanonicalizeA@8                 @177
    79     PathCanonicalizeW      = _PathCanonicalizeW@8                 @178
    80     PathCombineA           = _PathCombineA@12                     @179
    81     PathCombineW           = _PathCombineW@12                     @180
    82   ; PathCommonPrefixA      = _PathCommonPrefixA@?                 @181
    83   ; PathCommonPrefixW      = _PathCommonPrefixW@?                 @182
    84   ; PathCompactPathA       = _PathCompactPathA@?                  @183
    85   ; PathCompactPathExA     = _PathCompactPathExA@?                @184
    86   ; PathCompactPathExW     = _PathCompactPathExW@?                @185
    87   ; PathCompactPathW       = _PathCompactPathW@?                  @186
    88   ; PathCreateFromUrlA     = _PathCreateFromUrlA@?                @187
    89   ; PathCreateFromUrlW     = _PathCreateFromUrlW@?                @188
    90     PathFileExistsA        = _PathFileExistsA@4                   @189
    91     PathFileExistsW        = _PathFileExistsW@4                   @190
    92     PathFindExtensionA     = _PathFindExtensionA@4                @191
    93     PathFindExtensionW     = _PathFindExtensionW@4                @192
    94     PathFindFileNameA      = _PathFindFileNameA@4                 @193
    95     PathFindFileNameW      = _PathFindFileNameW@4                 @194
    96     PathFindNextComponentA = _PathFindNextComponentA@4            @195
    97     PathFindNextComponentW = _PathFindNextComponentW@4            @196
    98     PathFindOnPathW        = _PathFindOnPathW@8                   @198
    99     PathGetArgsA           = _PathGetArgsA@4                      @199
    100     PathGetArgsW           = _PathGetArgsW@4                      @200
    101   ; PathGetCharTypeA       = _PathGetCharTypeA@?                  @201
    102   ; PathGetCharTypeW       = _PathGetCharTypeW@?                  @202
    103     PathGetDriveNumberA    = _PathGetDriveNumberA@4               @203
    104     PathGetDriveNumberW    = _PathGetDriveNumberW@4               @204
    105   ; PathIsContentTypeA     = _PathIsContentTypeA@?                @205
    106   ; PathIsContentTypeW     = _PathIsContentTypeW@?                @206
    107     PathIsDirectoryA       = _PathIsDirectoryA@4                  @207
    108   ; PathIsDirectoryW       = _PathIsDirectoryW@?                  @208
    109   ; PathIsFileSpecA        = _PathIsFileSpecA@?                   @209
    110   ; PathIsFileSpecW        = _PathIsFileSpecW@?                   @210
    111   ; PathIsPrefixA          = _PathIsPrefixA@?                     @211
    112   ; PathIsPrefixW          = _PathIsPrefixW@?                     @212
    113     PathIsRelativeA        = _PathIsRelativeA@4                   @213
    114     PathIsRelativeW        = _PathIsRelativeW@4                   @214
    115     PathIsRootA            = _PathIsRootA@4                       @215
    116     PathIsRootW            = _PathIsRootW@4                       @216
    117     PathIsSameRootA        = _PathIsSameRootA@8                   @217
    118     PathIsSameRootW        = _PathIsSameRootW@8                   @218
    119   ; PathIsSystemFolderA    = _PathIsSystemFolderA@?               @219
    120   ; PathIsSystemFolderW    = _PathIsSystemFolderW@?               @220
    121     PathIsUNCA             = _PathIsUNCA@4                        @221
    122   ; PathIsUNCServerA       = _PathIsUNCServerA@?                  @222
    123   ; PathIsUNCServerShareA  = _PathIsUNCServerShareA@?             @223
    124   ; PathIsUNCServerShareW  = _PathIsUNCServerShareW@?             @224
    125   ; PathIsUNCServerW       = _PathIsUNCServerW@?                  @225
    126     PathIsUNCW             = _PathIsUNCW@4                        @226
    127     PathIsURLA             = _PathIsURLA@4                        @227
    128     PathIsURLW             = _PathIsURLW@4                        @228
    129   ; PathMakePrettyA        = _PathMakePrettyA@?                   @229
    130   ; PathMakePrettyW        = _PathMakePrettyW@?                   @230
    131   ; PathMakeSystemFolderA  = _PathMakeSystemFolderA@?             @231
    132   ; PathMakeSystemFolderW  = _PathMakeSystemFolderW@?             @232
    133     PathMatchSpecA         = _PathMatchSpecA@8                    @233
    134     PathMatchSpecW         = _PathMatchSpecW@8                    @234
    135     PathParseIconLocationA = _PathParseIconLocationA@4            @235
    136     PathParseIconLocationW = _PathParseIconLocationW@4            @236
    137     PathQuoteSpacesA       = _PathQuoteSpacesA@4                  @237
    138     PathQuoteSpacesW       = _PathQuoteSpacesW@4                  @238
    139   ;  PathRelativePathToA    = _PathRelativePathToA@?              @239
    140   ;  PathRelativePathToW    = _PathRelativePathToW@?              @240
    141     PathRemoveArgsA        = _PathRemoveArgsA@4                   @241
    142     PathRemoveArgsW        = _PathRemoveArgsW@4                   @242
    143     PathRemoveBackslashA   = _PathRemoveBackslashA@4              @243
    144     PathRemoveBackslashW   = _PathRemoveBackslashW@4              @244
    145     PathRemoveBlanksA      = _PathRemoveBlanksA@4                 @245
    146     PathRemoveBlanksW      = _PathRemoveBlanksW@4                 @246
    147     PathRemoveExtensionA   = _PathRemoveExtensionA@4              @247
    148     PathRemoveExtensionW   = _PathRemoveExtensionW@4              @248
    149     PathRemoveFileSpecA    = _PathRemoveFileSpecA@4               @249
    150     PathRemoveFileSpecW    = _PathRemoveFileSpecW@4               @250
    151   ; PathRenameExtensionA   = _PathRenameExtensionA@?              @251
    152   ; PathRenameExtensionW   = _PathRenameExtensionW@?              @252
    153   ;  PathSearchAndQualifyA  = _PathSearchAndQualifyA@?            @253
    154   ;  PathSearchAndQualifyW  = _PathSearchAndQualifyW@?            @254
    155     PathSetDlgItemPathA    = _PathSetDlgItemPathA@12              @255
    156     PathSetDlgItemPathW    = _PathSetDlgItemPathW@12              @256
    157     PathSkipRootA          = _PathSkipRootA@4                     @257
    158     PathSkipRootW          = _PathSkipRootW@4                     @258
    159     PathStripPathA         = _PathStripPathA@4                    @259
    160     PathStripPathW         = _PathStripPathW@4                    @260
    161     PathStripToRootA       = _PathStripToRootA@4                  @261
    162     PathStripToRootW       = _PathStripToRootW@4                  @262
    163   ; PathUnmakeSystemFolderA= _PathUnmakeSystemFolderA@?           @263
    164   ; PathUnmakeSystemFolderW= _PathUnmakeSystemFolderW@?           @264
    165     PathUnquoteSpacesA     = _PathUnquoteSpacesA@4                @265
    166     PathUnquoteSpacesW     = _PathUnquoteSpacesW@4                @266
    167   ; SHCreateShellPalette   = _SHCreateShellPalette@?              @267
    168   ; SHDeleteEmptyKeyA      = _SHDeleteEmptyKeyA@?                 @268
    169   ; SHDeleteEmptyKeyW      = _SHDeleteEmptyKeyW@?                 @269
    170   ; SHDeleteKeyA           = _SHDeleteKeyA@?                      @270
    171   ; SHDeleteKeyW           = _SHDeleteKeyW@?                      @271
    172   ; SHDeleteOrphanKeyA     = _SHDeleteOrphanKeyA@?                @272
    173   ; SHDeleteOrphanKeyW     = _SHDeleteOrphanKeyW@?                @273
    174   ; SHDeleteValueA         = _SHDeleteValueA@?                    @274
    175   ; SHDeleteValueW         = _SHDeleteValueW@?                    @275
    176   ; SHEnumKeyExA           = _SHEnumKeyExA@?                      @276
    177   ; SHEnumKeyExW           = _SHEnumKeyExW@?                      @277
    178   ; SHEnumValueA           = _SHEnumValueA@?                      @278
    179   ; SHEnumValueW           = _SHEnumValueW@?                      @279
    180   ; SHGetInverseCMAP       = _SHGetInverseCMAP@?                  @280
    181     SHGetValueA            = _SHGetValueA@24                      @281
    182     SHGetValueW            = _SHGetValueW@24                      @282
    183   ; SHIsLowMemoryMachine   = _SHIsLowMemoryMachine@?              @283
    184   ; SHOpenRegStreamA       = _SHOpenRegStreamA@?                  @284
    185   ; SHOpenRegStreamW       = _SHOpenRegStreamW@?                  @285
    186   ; SHQueryInfoKeyA        = _SHQueryInfoKeyA@?                   @286
    187   ; SHQueryInfoKeyW        = _SHQueryInfoKeyW@?                   @287
    188   ; SHQueryValueExA        = _SHQueryValueExA@?                   @288
    189   ; SHQueryValueExW        = _SHQueryValueExW@?                   @289
    190   ; SHRegCloseUSKey        = _SHRegCloseUSKey@?                   @290
    191   ; SHRegCreateUSKeyA      = _SHRegCreateUSKeyA@?                 @291
    192   ; SHRegCreateUSKeyW      = _SHRegCreateUSKeyW@?                 @292
    193   ; SHRegDeleteEmptyUSKeyA = _SHRegDeleteEmptyUSKeyA@?            @293
    194   ; SHRegDeleteEmptyUSKeyW = _SHRegDeleteEmptyUSKeyW@?            @294
    195   ; SHRegDeleteUSKeyA      = _SHRegDeleteUSKeyA@?                 @295
    196   ; SHRegDeleteUSKeyW      = _SHRegDeleteUSKeyW@?                 @296
    197   ; SHRegEnumUSKeyA        = _SHRegEnumUSKeyA@?                   @297
    198   ; SHRegEnumUSKeyW        = _SHRegEnumUSKeyW@?                   @298
    199   ; SHRegEnumUSValueA      = _SHRegEnumUSValueA@?                 @299
    200   ; SHRegEnumUSValueA      = _SHRegEnumUSValueW@?                 @300
    201     SHRegGetBoolUSValueA   = _SHRegGetBoolUSValueA@20             @301
    202     SHRegGetBoolUSValueW   = _SHRegGetBoolUSValueW@20             @302
    203     SHRegGetUSValueA       = _SHRegGetUSValueA@32                 @303
    204     SHRegGetUSValueW       = _SHRegGetUSValueW@32                 @304
    205   ; SHRegOpenUSKeyA        = _SHRegOpenUSKeyA@?                   @305
    206   ; SHRegOpenUSKeyW        = _SHRegOpenUSKeyW@?                   @306
    207   ; SHRegQueryInfoKeyA     = _SHRegQueryInfoKeyA@?                @307
    208   ; SHRegQueryInfoKeyW     = _SHRegQueryInfoKeyW@?                @308
    209   ; SHRegQueryUSValueA     = _SHRegQueryUSValueA@?                @309
    210   ; SHRegQueryUSValueW     = _SHRegQueryUSValueW@?                @310
    211   ; SHRegSetUSValueA       = _SHRegSetUSValueA@?                  @311
    212   ; SHRegSetUSValueW       = _SHRegSetUSValueW@?                  @312
    213   ; SHRegWriteUSValueA     = _SHRegWriteUSValueA@?                @313
    214   ; SHRegWriteUSValueW     = _SHRegWriteUSValueW@?                @314
    215   ; SHSetValueA            = _SHSetValueA@?                       @315
    216   ; SHSetValueW            = _SHSetValueW@?                       @316
    217 
    218   ; StrCSpnA               = _StrCSpnA@?                          @317
    219   ; StrCSpnIA              = _StrCSpnIA@?                         @318
    220   ; StrCSpnIW              = _StrCSpnIW@?                         @319
    221   ; StrCSpnW               = _StrCSpnW@?                          @320
    222   ; StrCatW                = _StrCatW@?                           @321
    223     StrChrA                = _StrChrA@8                           @322
    224     StrChrIA               = _StrChrIA@8                          @323
    225     StrChrIW               = _StrChrIW@8                          @324
    226     StrChrW                = _StrChrW@8                           @325
    227   ; StrCmpIW               = _StrCmpIW@?                          @326
    228   ; StrCmpNA               = _StrCmpNA@12                         @327
    229     StrCmpNIA              = _StrCmpNIA@12                        @328
    230     StrCmpNIW              = _StrCmpNIW@12                        @329
    231   ; StrCmpNW               = _StrCmpNW@12                         @330
    232   ; StrCmpW                = _StrCmpW@?                           @331
    233   ; StrCpyNW               = _StrCpyNW@?                          @332
    234   ; StrCpyW                = _StrCpyW@?                           @333
    235   ; StrDupA                = _StrDupA@?                           @334
    236   ; StrDupW                = _StrDupW@?                           @335
    237     StrFormatByteSizeA     = _StrFormatByteSizeA@12               @336
    238     StrFormatByteSizeW     = _StrFormatByteSizeW@12               @337
    239   ; StrFromTimeIntervalA   = _StrFromTimeIntervalA@?              @338
    240   ; StrFromTimeIntervalW   = _StrFromTimeIntervalW@?              @339
    241   ; StrIsIntlEqualA        = _StrIsIntlEqualA@?                   @340
    242   ; StrIsIntlEqualW        = _StrIsIntlEqualW@?                   @341
    243   ; StrNCatA               = _StrNCatA@?                          @342
    244   ; StrNCatW               = _StrNCatW@?                          @343
    245   ; StrPBrkA               = _StrPBrkA@?                          @344
    246   ; StrPBrkW               = _StrPBrkW@?                          @345
    247     StrRChrA               = _StrRChrA@12                         @346
    248   ; StrRChrIA              = _StrRChrIA@12                        @347
    249   ; StrRChrIW              = _StrRChrIW@12                        @348
    250     StrRChrW               = _StrRChrW@12                         @349
    251   ; StrRStrIA              = _StrRStrIA@?                         @350
    252   ; StrRStrIW              = _StrRStrIW@?                         @351
    253   ; StrSpnA                = _StrSpnA@?                           @352
    254   ; StrSpnW                = _StrSpnW@?                           @353
    255   ; StrStrA                = _StrStrA@8                           @354
    256     StrStrIA               = _StrStrIA@8                          @355
    257     StrStrIW               = _StrStrIW@8                          @356
    258   ; StrStrW                = _StrStrW@8                           @357
    259 
    260 
    261   ; StrToIntExA            = _StrToIntExA@?                       @359
    262   ; StrToIntExW            = _StrToIntExW@?                       @360
    263   ; StrToIntW              = _StrToIntW@4                         @361
    264   ; StrTrimA               = _StrTrimA@?                          @362
    265   ; StrTrimW               = _StrTrimW@?                          @363
    266     UrlApplySchemeA        = _UrlApplySchemeA@16                  @364
    267     UrlApplySchemeW        = _UrlApplySchemeW@16                  @365
    268     UrlCanonicalizeA       = _UrlCanonicalizeA@16                 @366
    269     UrlCanonicalizeW       = _UrlCanonicalizeW@16                 @367
    270     UrlCombineA            = _UrlCombineA@20                      @368
    271     UrlCombineW            = _UrlCombineW@20                      @369
    272     UrlCompareA            = _UrlCompareA@12                      @370
    273     UrlCompareW            = _UrlCompareW@12                      @371
    274     UrlCreateFromPathA     = _UrlCreateFromPathA@16               @372
    275     UrlCreateFromPathW     = _UrlCreateFromPathW@16               @373
    276     UrlEscapeA             = _UrlEscapeA@16                       @374
    277     UrlEscapeW             = _UrlEscapeW@16                       @375
    278     UrlGetLocationA        = _UrlGetLocationA@4                   @376
    279     UrlGetLocationW        = _UrlGetLocationW@4                   @377
    280     UrlGetPartA            = _UrlGetPartA@20                      @378
    281     UrlGetPartW            = _UrlGetPartW@20                      @379
    282     UrlHashA               = _UrlHashA@12                         @380
    283     UrlHashW               = _UrlHashW@12                         @381
    284     UrlIsA                 = _UrlIsA@8                            @382
    285     UrlIsNoHistoryA        = _UrlIsNoHistoryA@4                   @383
    286     UrlIsNoHistoryW        = _UrlIsNoHistoryW@4                   @384
    287     UrlIsOpaqueA           = _UrlIsOpaqueA@4                      @385
    288     UrlIsOpaqueW           = _UrlIsOpaqueW@4                      @386
    289     UrlIsW                 = _UrlIsW@8                            @387
    290     UrlUnescapeA           = _UrlUnescapeA@16                     @388
    291     UrlUnescapeW           = _UrlUnescapeW@16                     @389
     433  ; StrToIntExA            = _StrToIntExA@?                       @676
     434  ; StrToIntExW            = _StrToIntExW@?                       @677
     435    StrToIntW              = _StrToIntW@4                         @678
     436  ; StrTrimA               = _StrTrimA@?                          @679
     437  ; StrTrimW               = _StrTrimW@?                          @680
     438    UrlApplySchemeA        = _UrlApplySchemeA@16                  @681
     439    UrlApplySchemeW        = _UrlApplySchemeW@16                  @682
     440    UrlCanonicalizeA       = _UrlCanonicalizeA@16                 @683
     441    UrlCanonicalizeW       = _UrlCanonicalizeW@16                 @684
     442    UrlCombineA            = _UrlCombineA@20                      @685
     443    UrlCombineW            = _UrlCombineW@20                      @686
     444    UrlCompareA            = _UrlCompareA@12                      @687
     445    UrlCompareW            = _UrlCompareW@12                      @688
     446    UrlCreateFromPathA     = _UrlCreateFromPathA@16               @689
     447    UrlCreateFromPathW     = _UrlCreateFromPathW@16               @690
     448    UrlEscapeA             = _UrlEscapeA@16                       @691
     449    UrlEscapeW             = _UrlEscapeW@16                       @692
     450    UrlGetLocationA        = _UrlGetLocationA@4                   @693
     451    UrlGetLocationW        = _UrlGetLocationW@4                   @694
     452    UrlGetPartA            = _UrlGetPartA@20                      @695
     453    UrlGetPartW            = _UrlGetPartW@20                      @696
     454    UrlHashA               = _UrlHashA@12                         @697
     455    UrlHashW               = _UrlHashW@12                         @698
     456    UrlIsA                 = _UrlIsA@8                            @699
     457    UrlIsNoHistoryA        = _UrlIsNoHistoryA@4                   @700
     458    UrlIsNoHistoryW        = _UrlIsNoHistoryW@4                   @701
     459    UrlIsOpaqueA           = _UrlIsOpaqueA@4                      @702
     460    UrlIsOpaqueW           = _UrlIsOpaqueW@4                      @703
     461    UrlIsW                 = _UrlIsW@8                            @704
     462    UrlUnescapeA           = _UrlUnescapeA@16                     @705
     463    UrlUnescapeW           = _UrlUnescapeW@16                     @706
     464;   wnsprintfA             = _wnsprintfA@16                       @707
     465;   wnsprintfW             = _wnsprintfW@16                       @708
     466;   wvnsprintfA            = _wvnsprintfA@16                      @709
     467;   wvnsprintfW            = _wvnsprintfW@16                      @710
     468
     469; ------------------------------
     470; Export for SHELL32 to catch up
     471; ------------------------------
    292472
    293473   _PathIsRootAW@4                      @1000
  • trunk/src/shlwapi/shlwapi.h

    r3539 r3687  
    1 /* $Id: shlwapi.h,v 1.1 2000-05-15 02:43:17 phaller Exp $ */
     1/* $Id: shlwapi.h,v 1.2 2000-06-12 08:09:44 phaller Exp $ */
    22
    33/*
     
    2727
    2828   
     29/*****************************************************************************
     30 * Prototypes                                                                *
     31 *****************************************************************************/
     32   
     33LPSTR WIN32API StrStrIA(LPCSTR lpFirst, LPCSTR lpSrch);
     34   
    2935
    3036#ifdef __cplusplus
     
    3339
    3440
    35 
    3641#endif
  • trunk/src/shlwapi/string.cpp

    r3684 r3687  
    1 /* $Id: string.cpp,v 1.3 2000-06-11 08:44:55 phaller Exp $ */
     1 /* $Id: string.cpp,v 1.4 2000-06-12 08:09:46 phaller Exp $ */
    22
    33/*
     
    6868ODINDEBUGCHANNEL(SHLWAPI-STRING)
    6969
     70
     71/*****************************************************************************
     72 * Name      : ChrCmpIA
     73 * Purpose   :
     74 * Parameters:
     75 * Variables :
     76 * Result    :
     77 * Remark    :
     78 * Status    : UNTESTED
     79 *
     80 * Author    : Patrick Haller [Wed, 1999/12/29 09:00]
     81 *****************************************************************************/
     82
     83ODINFUNCTION2(INT,    ChrCmpIA,
     84              INT,    ch1,
     85              INT,    ch2)
     86{
     87  // Note: IsDBCSLeadByte ignored !
     88 
     89  if ( (ch1 >= 'A') && (ch1 <= 'Z') ) ch1 |= 0x20;
     90  if ( (ch2 >= 'A') && (ch2 <= 'Z') ) ch2 |= 0x20;
     91 
     92  return ch1 - ch2;
     93}
    7094
    7195
     
    516540}
    517541
     542
     543/*************************************************************************
     544*      StrToIntW                       [SHLWAPI]ú
     545*/
     546int WINAPI StrToIntW(LPCWSTR lpSrc)
     547{
     548  int ret;
     549  LPSTR lpStr =  HEAP_strdupWtoA(GetProcessHeap(),0,lpSrc);
     550
     551  TRACE("%s\n", debugstr_w(lpSrc));
     552
     553  ret = atol(lpStr);
     554  HeapFree(GetProcessHeap(),0,lpStr);
     555  return ret;
     556}
     557
     558
    518559/*************************************************************************
    519560 * StrFormatByteSizeA                           [SHLWAPI]
     
    559600        return pszBuf; 
    560601}
     602
     603
     604/*****************************************************************************
     605 * Name      : StrCpyA
     606 * Purpose   : copy a string
     607 * Parameters:
     608 * Variables :
     609 * Result    :
     610 * Remark    : not exported ?
     611 * Status    : UNTESTED
     612 *
     613 * Author    :
     614 *****************************************************************************/
     615
     616ODINFUNCTION2(LPSTR,  StrCpyA,
     617              LPSTR,  lpDest,
     618              LPCSTR, lpSource)
     619{
     620  return lstrcpyA(lpDest,
     621                  lpSource);
     622}
     623
     624
     625/*****************************************************************************
     626 * Name      : StrCpyW
     627 * Purpose   : copy a wide-character string
     628 * Parameters:
     629 * Variables :
     630 * Result    :
     631 * Remark    : SHLWAPI.642
     632 * Status    : UNTESTED
     633 *
     634 * Author    :
     635 *****************************************************************************/
     636
     637ODINFUNCTION2(LPWSTR,  StrCpyW,
     638              LPWSTR,  lpDest,
     639              LPCWSTR, lpSource)
     640{
     641  return lstrcpyW(lpDest,
     642                  lpSource);
     643}
     644
     645
     646/*****************************************************************************
     647 * Name      : StrDupA
     648 * Purpose   : duplicate a string on the local heap
     649 * Parameters:
     650 * Variables :
     651 * Result    :
     652 * Remark    : SHLWAPI.644
     653 * Status    : UNTESTED
     654 *
     655 * Author    :
     656 *****************************************************************************/
     657
     658ODINFUNCTION1(LPSTR,  StrDupA,
     659              LPCSTR, lpStr)
     660{
     661  int    iLength = lstrlenA(lpStr) + 1;
     662  HLOCAL hLocal  = LocalAlloc(LMEM_ZEROINIT,
     663                              iLength);
     664  if (hLocal != NULL)
     665    StrCpyA((LPSTR)hLocal,
     666            lpStr);
     667 
     668  return (LPSTR)hLocal;
     669}
     670
     671
     672/*****************************************************************************
     673 * Name      : StrDupW
     674 * Purpose   : duplicate a wide-characters string on the local heap
     675 * Parameters:
     676 * Variables :
     677 * Result    :
     678 * Remark    : SHLWAPI.645
     679 * Status    : UNTESTED
     680 *
     681 * Author    :
     682 *****************************************************************************/
     683
     684ODINFUNCTION1(LPWSTR,  StrDupW,
     685              LPCWSTR, lpStr)
     686{
     687  int    iLength = lstrlenW(lpStr) << 1 + 2;
     688  HLOCAL hLocal  = LocalAlloc(LMEM_ZEROINIT,
     689                              iLength);
     690  if (hLocal != NULL)
     691    StrCpyW((LPWSTR)hLocal,
     692            lpStr);
     693 
     694  return (LPWSTR)hLocal;
     695}
  • trunk/src/shlwapi/url.cpp

    r3539 r3687  
    1 /* $Id: url.cpp,v 1.2 2000-05-15 02:42:35 phaller Exp $ */
     1/* $Id: url.cpp,v 1.3 2000-06-12 08:09:48 phaller Exp $ */
    22
    33/*
     
    7373{ /* scheme     opaque hist   type */
    7474  {"http://",   FALSE, FALSE, 0},
     75  {"https://",  FALSE, FALSE, 0},
     76  {"shttp://",  FALSE, FALSE, 0},
    7577  {"file://",   FALSE, FALSE, 0},
    7678  {"ftp://",    FALSE, FALSE, 0},
    7779  {"telnet://", FALSE, TRUE,  0},
    7880  {"news://",   FALSE, TRUE,  0},
     81  {"snews://",  FALSE, TRUE,  0},
    7982  {"mailto:",   TRUE,  TRUE,  0},
    8083  {"gopher://", FALSE, FALSE, 0},
     84  {"wais://",   FALSE, FALSE, 0},
    8185};
    8286
Note: See TracChangeset for help on using the changeset viewer.