Autosyncing with Wine HEAD
authorThe Wine Synchronizer <winesync@svn.reactos.org>
Thu, 29 Nov 2007 11:15:59 +0000 (11:15 +0000)
committerThe Wine Synchronizer <winesync@svn.reactos.org>
Thu, 29 Nov 2007 11:15:59 +0000 (11:15 +0000)
svn path=/trunk/; revision=30887

17 files changed:
reactos/dll/win32/shlwapi/assoc.c
reactos/dll/win32/shlwapi/clist.c
reactos/dll/win32/shlwapi/istream.c
reactos/dll/win32/shlwapi/ordinal.c
reactos/dll/win32/shlwapi/path.c
reactos/dll/win32/shlwapi/reg.c
reactos/dll/win32/shlwapi/regstream.c
reactos/dll/win32/shlwapi/shlwapi.rbuild
reactos/dll/win32/shlwapi/shlwapi.rc
reactos/dll/win32/shlwapi/shlwapi.spec
reactos/dll/win32/shlwapi/shlwapi_Ko.rc
reactos/dll/win32/shlwapi/shlwapi_Pt.rc
reactos/dll/win32/shlwapi/shlwapi_Sv.rc
reactos/dll/win32/shlwapi/shlwapi_ros.diff
reactos/dll/win32/shlwapi/string.c
reactos/dll/win32/shlwapi/thread.c
reactos/dll/win32/shlwapi/url.c

index b087197..caac827 100644 (file)
@@ -414,7 +414,7 @@ HRESULT WINAPI AssocQueryStringByKeyA(ASSOCF cfFlags, ASSOCSTR str, HKEY hkAssoc
 
 /**************************************************************************
  *  AssocIsDangerous  (SHLWAPI.@)
- *
+ *  
  * Determine if a file association is dangerous (potentially malware).
  *
  * PARAMS
@@ -468,7 +468,7 @@ static ULONG WINAPI IQueryAssociations_fnAddRef(IQueryAssociations *iface)
 {
   IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface;
   ULONG refCount = InterlockedIncrement(&This->ref);
-
+  
   TRACE("(%p)->(ref before=%u)\n",This, refCount - 1);
 
   return refCount;
@@ -491,7 +491,7 @@ static ULONG WINAPI IQueryAssociations_fnRelease(IQueryAssociations *iface)
     TRACE("Destroying IQueryAssociations (%p)\n", This);
     HeapFree(GetProcessHeap(), 0, This);
   }
-
+  
   return refCount;
 }
 
index 29028bf..2fa53cd 100644 (file)
@@ -34,8 +34,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
 /* dwSignature for contained DATABLOCK_HEADER items */
 #define CLIST_ID_CONTAINER (~0U)
 
-HRESULT WINAPI SHAddDataBlock(LPDBLIST*,const DATABLOCK_HEADER*);
-
 /*************************************************************************
  * NextItem
  *
@@ -48,6 +46,101 @@ static inline LPDATABLOCK_HEADER NextItem(LPDBLIST lpList)
   return (LPDATABLOCK_HEADER)address;
 }
 
+/*************************************************************************
+ *      @      [SHLWAPI.20]
+ *
+ * Insert a new item into a DataBlock list.
+ *
+ * PARAMS
+ *  lppList   [0] Pointer to the List
+ *  lpNewItem [I] The new item to add to the list
+ *
+ * RETURNS
+ *  Success: S_OK. The item is added to the list.
+ *  Failure: An HRESULT error code.
+ *
+ * NOTES
+ *  If the size of the element to be inserted is less than the size of a
+ *  DATABLOCK_HEADER node, or the Id for the item is CLIST_ID_CONTAINER,
+ *  the call returns S_OK but does not actually add the element.
+ *  See SHWriteDataBlockList.
+ */
+HRESULT WINAPI SHAddDataBlock(LPDBLIST* lppList, const DATABLOCK_HEADER *lpNewItem)
+{
+  LPDATABLOCK_HEADER lpInsertAt = NULL;
+  ULONG ulSize;
+
+  TRACE("(%p,%p)\n", lppList, lpNewItem);
+
+  if(!lppList || !lpNewItem )
+    return E_INVALIDARG;
+
+  if (lpNewItem->cbSize < sizeof(DATABLOCK_HEADER) ||
+      lpNewItem->dwSignature == CLIST_ID_CONTAINER)
+    return S_OK;
+
+  ulSize = lpNewItem->cbSize;
+
+  if(ulSize & 0x3)
+  {
+    /* Tune size to a ULONG boundary, add space for container element */
+    ulSize = ((ulSize + 0x3) & 0xFFFFFFFC) + sizeof(DATABLOCK_HEADER);
+    TRACE("Creating container item, new size = %d\n", ulSize);
+  }
+
+  if(!*lppList)
+  {
+    /* An empty list. Allocate space for terminal ulSize also */
+    *lppList = (LPDATABLOCK_HEADER)LocalAlloc(LMEM_ZEROINIT,
+                                           ulSize + sizeof(ULONG));
+    lpInsertAt = *lppList;
+  }
+  else
+  {
+    /* Append to the end of the list */
+    ULONG ulTotalSize = 0;
+    LPDATABLOCK_HEADER lpIter = *lppList;
+
+    /* Iterate to the end of the list, calculating the total size */
+    while (lpIter->cbSize)
+    {
+      ulTotalSize += lpIter->cbSize;
+      lpIter = NextItem(lpIter);
+    }
+
+    /* Increase the size of the list */
+    lpIter = (LPDATABLOCK_HEADER)LocalReAlloc((HLOCAL)*lppList,
+                                          ulTotalSize + ulSize+sizeof(ULONG),
+                                          LMEM_ZEROINIT | LMEM_MOVEABLE);
+    if(lpIter)
+    {
+      *lppList = lpIter;
+      lpInsertAt = (LPDATABLOCK_HEADER)((char*)lpIter + ulTotalSize); /* At end */
+    }
+  }
+
+  if(lpInsertAt)
+  {
+    /* Copy in the new item */
+    LPDATABLOCK_HEADER lpDest = lpInsertAt;
+
+    if(ulSize != lpNewItem->cbSize)
+    {
+      lpInsertAt->cbSize = ulSize;
+      lpInsertAt->dwSignature = CLIST_ID_CONTAINER;
+      lpDest++;
+    }
+    memcpy(lpDest, lpNewItem, lpNewItem->cbSize);
+
+    /* Terminate the list */
+    lpInsertAt = NextItem(lpInsertAt);
+    lpInsertAt->cbSize = 0;
+
+    return lpNewItem->cbSize;
+  }
+  return S_OK;
+}
+
 /*************************************************************************
  *      @      [SHLWAPI.17]
  *
@@ -246,101 +339,6 @@ VOID WINAPI SHFreeDataBlockList(LPDBLIST lpList)
     LocalFree((HLOCAL)lpList);
 }
 
-/*************************************************************************
- *      @      [SHLWAPI.20]
- *
- * Insert a new item into a DataBlock list.
- *
- * PARAMS
- *  lppList   [0] Pointer to the List
- *  lpNewItem [I] The new item to add to the list
- *
- * RETURNS
- *  Success: S_OK. The item is added to the list.
- *  Failure: An HRESULT error code.
- *
- * NOTES
- *  If the size of the element to be inserted is less than the size of a
- *  DATABLOCK_HEADER node, or the Id for the item is CLIST_ID_CONTAINER,
- *  the call returns S_OK but does not actually add the element.
- *  See SHWriteDataBlockList.
- */
-HRESULT WINAPI SHAddDataBlock(LPDBLIST* lppList, const DATABLOCK_HEADER *lpNewItem)
-{
-  LPDATABLOCK_HEADER lpInsertAt = NULL;
-  ULONG ulSize;
-
-  TRACE("(%p,%p)\n", lppList, lpNewItem);
-
-  if(!lppList || !lpNewItem )
-    return E_INVALIDARG;
-
-  if (lpNewItem->cbSize < sizeof(DATABLOCK_HEADER) ||
-      lpNewItem->dwSignature == CLIST_ID_CONTAINER)
-    return S_OK;
-
-  ulSize = lpNewItem->cbSize;
-
-  if(ulSize & 0x3)
-  {
-    /* Tune size to a ULONG boundary, add space for container element */
-    ulSize = ((ulSize + 0x3) & 0xFFFFFFFC) + sizeof(DATABLOCK_HEADER);
-    TRACE("Creating container item, new size = %d\n", ulSize);
-  }
-
-  if(!*lppList)
-  {
-    /* An empty list. Allocate space for terminal ulSize also */
-    *lppList = (LPDATABLOCK_HEADER)LocalAlloc(LMEM_ZEROINIT,
-                                           ulSize + sizeof(ULONG));
-    lpInsertAt = *lppList;
-  }
-  else
-  {
-    /* Append to the end of the list */
-    ULONG ulTotalSize = 0;
-    LPDATABLOCK_HEADER lpIter = *lppList;
-
-    /* Iterate to the end of the list, calculating the total size */
-    while (lpIter->cbSize)
-    {
-      ulTotalSize += lpIter->cbSize;
-      lpIter = NextItem(lpIter);
-    }
-
-    /* Increase the size of the list */
-    lpIter = (LPDATABLOCK_HEADER)LocalReAlloc((HLOCAL)*lppList,
-                                          ulTotalSize + ulSize+sizeof(ULONG),
-                                          LMEM_ZEROINIT | LMEM_MOVEABLE);
-    if(lpIter)
-    {
-      *lppList = lpIter;
-      lpInsertAt = (LPDATABLOCK_HEADER)((char*)lpIter + ulTotalSize); /* At end */
-    }
-  }
-
-  if(lpInsertAt)
-  {
-    /* Copy in the new item */
-    LPDATABLOCK_HEADER lpDest = lpInsertAt;
-
-    if(ulSize != lpNewItem->cbSize)
-    {
-      lpInsertAt->cbSize = ulSize;
-      lpInsertAt->dwSignature = CLIST_ID_CONTAINER;
-      lpDest++;
-    }
-    memcpy(lpDest, lpNewItem, lpNewItem->cbSize);
-
-    /* Terminate the list */
-    lpInsertAt = NextItem(lpInsertAt);
-    lpInsertAt->cbSize = 0;
-
-    return lpNewItem->cbSize;
-  }
-  return S_OK;
-}
-
 /*************************************************************************
  *      @      [SHLWAPI.21]
  *
@@ -427,7 +425,7 @@ BOOL WINAPI SHRemoveDataBlock(LPDBLIST* lppList, DWORD dwSignature)
  * NOTES
  *  See SHWriteDataBlockList.
  */
-LPDATABLOCK_HEADER WINAPI SHFindDataBlock(LPDBLIST lpList, DWORD dwSignature)
+DATABLOCK_HEADER* WINAPI SHFindDataBlock(LPDBLIST lpList, DWORD dwSignature)
 {
   TRACE("(%p,%d)\n", lpList, dwSignature);
 
index 34efbed..b82623e 100644 (file)
@@ -82,7 +82,7 @@ static ULONG WINAPI IStream_fnAddRef(IStream *iface)
 {
   ISHFileStream *This = (ISHFileStream *)iface;
   ULONG refCount = InterlockedIncrement(&This->ref);
-
+  
   TRACE("(%p)->(ref before=%u)\n",This, refCount - 1);
 
   return refCount;
@@ -94,10 +94,10 @@ static ULONG WINAPI IStream_fnAddRef(IStream *iface)
 static ULONG WINAPI IStream_fnRelease(IStream *iface)
 {
   ISHFileStream *This = (ISHFileStream *)iface;
-  ULONG refCount = InterlockedDecrement(&This->ref);
+  ULONG refCount = InterlockedDecrement(&This->ref); 
 
   TRACE("(%p)->(ref before=%u)\n",This, refCount + 1);
-
+  
   if (!refCount)
   {
     IStream_fnCommit(iface, 0); /* If ever buffered, this will be needed */
@@ -105,7 +105,7 @@ static ULONG WINAPI IStream_fnRelease(IStream *iface)
     CloseHandle(This->hFile);
     HeapFree(GetProcessHeap(), 0, This);
   }
-
+  
   return refCount;
 }
 
@@ -548,7 +548,7 @@ HRESULT WINAPI SHCreateStreamOnFileA(LPCSTR lpszPath, DWORD dwMode,
  *  Failure: An HRESULT error code, or E_FAIL if the read succeeded but the
  *           number of bytes read does not match.
  */
-HRESULT WINAPI SHLWAPI_184(IStream *lpStream, LPVOID lpvDest, ULONG ulSize)
+HRESULT WINAPI SHIStream_Read(IStream *lpStream, LPVOID lpvDest, ULONG ulSize)
 {
   ULONG ulRead;
   HRESULT hRet;
@@ -593,7 +593,7 @@ BOOL WINAPI SHIsEmptyStream(IStream *lpStream)
     DWORD dwDummy;
 
     /* Try to read from the stream */
-    if(SUCCEEDED(SHLWAPI_184(lpStream, &dwDummy, sizeof(dwDummy))))
+    if(SUCCEEDED(SHIStream_Read(lpStream, &dwDummy, sizeof(dwDummy))))
     {
       LARGE_INTEGER zero;
       zero.QuadPart = 0;
@@ -620,7 +620,7 @@ BOOL WINAPI SHIsEmptyStream(IStream *lpStream)
  *  Failure: An HRESULT error code, or E_FAIL if the write succeeded but the
  *           number of bytes written does not match.
  */
-HRESULT WINAPI SHLWAPI_212(IStream *lpStream, LPCVOID lpvSrc, ULONG ulSize)
+HRESULT WINAPI SHIStream_Write(IStream *lpStream, LPCVOID lpvSrc, ULONG ulSize)
 {
   ULONG ulWritten;
   HRESULT hRet;
index 972f676..8dc0ffa 100644 (file)
@@ -33,6 +33,7 @@
 
 #include "windef.h"
 #include "winbase.h"
+#include "winnls.h"
 #include "winreg.h"
 #include "wingdi.h"
 #include "winuser.h"
@@ -529,9 +530,15 @@ HRESULT WINAPI GetAcceptLanguagesA( LPSTR langbuf, LPDWORD buflen)
     langbufW = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR) * buflenW);
     retval = GetAcceptLanguagesW(langbufW, &buflenW);
 
-    /* FIXME: this is wrong, the string may not be null-terminated */
-    convlen = WideCharToMultiByte(CP_ACP, 0, langbufW, -1, langbuf,
-                                  *buflen, NULL, NULL);
+    if (retval == S_OK)
+    {
+        convlen = WideCharToMultiByte(CP_ACP, 0, langbufW, -1, langbuf, *buflen, NULL, NULL);
+    }
+    else  /* copy partial string anyway */
+    {
+        convlen = WideCharToMultiByte(CP_ACP, 0, langbufW, *buflen, langbuf, *buflen, NULL, NULL);
+        if (convlen < *buflen) langbuf[convlen] = 0;
+    }
     *buflen = buflenW ? convlen : 0;
 
     HeapFree(GetProcessHeap(), 0, langbufW);
@@ -725,53 +732,9 @@ BOOL WINAPI IsCharXDigitW(WCHAR wc)
  *      @      [SHLWAPI.35]
  *
  */
-BOOL WINAPI GetStringType3ExW(LPWSTR lpszStr, DWORD dwLen, LPVOID p3)
-{
-    FIXME("(%s,0x%08x,%p): stub\n", debugstr_w(lpszStr), dwLen, p3);
-    return TRUE;
-}
-
-/*************************************************************************
- *      @      [SHLWAPI.36]
- *
- * Insert a bitmap menu item at the bottom of a menu.
- *
- * PARAMS
- *  hMenu [I] Menu to insert into
- *  flags [I] Flags for insertion
- *  id    [I] Menu ID of the item
- *  str   [I] Menu text for the item
- *
- * RETURNS
- *  Success: TRUE,  the item is inserted into the menu
- *  Failure: FALSE, if any parameter is invalid
- */
-BOOL WINAPI AppendMenuWrapW(HMENU hMenu, UINT flags, UINT id, LPCWSTR str)
-{
-    TRACE("(%p,0x%08x,0x%08x,%s)\n",hMenu, flags, id, debugstr_w(str));
-    return InsertMenuW(hMenu, -1, flags | MF_BITMAP, id, str);
-}
-
-/*************************************************************************
- *      @   [SHLWAPI.138]
- *
- * Set the text of a given dialog item.
- *
- * PARAMS
- *  hWnd     [I] Handle of dialog
- *  iItem    [I] Index of item
- *  lpszText [O] Text to set
- *
- * RETURNS
- *  Success: TRUE.  The text of the dialog is set to lpszText.
- *  Failure: FALSE, Otherwise.
- */
-BOOL WINAPI SetDlgItemTextWrapW(HWND hWnd, INT iItem, LPCWSTR lpszText)
+BOOL WINAPI GetStringType3ExW(LPWSTR src, INT count, LPWORD type)
 {
-    HWND hWndItem = GetDlgItem(hWnd, iItem);
-    if (hWndItem)
-        return SetWindowTextW(hWndItem, lpszText);
-    return FALSE;
+    return GetStringTypeW(CT_CTYPE3, src, count, type);
 }
 
 /*************************************************************************
@@ -790,7 +753,7 @@ BOOL WINAPI SetDlgItemTextWrapW(HWND hWnd, INT iItem, LPCWSTR lpszText)
  */
 DWORD WINAPI StrCmpNCA(LPCSTR lpszSrc, LPCSTR lpszCmp, INT len)
 {
-    return strncmp(lpszSrc, lpszCmp, len);
+    return StrCmpNA(lpszSrc, lpszCmp, len);
 }
 
 /*************************************************************************
@@ -800,7 +763,7 @@ DWORD WINAPI StrCmpNCA(LPCSTR lpszSrc, LPCSTR lpszCmp, INT len)
  */
 DWORD WINAPI StrCmpNCW(LPCWSTR lpszSrc, LPCWSTR lpszCmp, INT len)
 {
-    return strncmpW(lpszSrc, lpszCmp, len);
+    return StrCmpNW(lpszSrc, lpszCmp, len);
 }
 
 /*************************************************************************
@@ -819,7 +782,7 @@ DWORD WINAPI StrCmpNCW(LPCWSTR lpszSrc, LPCWSTR lpszCmp, INT len)
  */
 DWORD WINAPI StrCmpNICA(LPCSTR lpszSrc, LPCSTR lpszCmp, DWORD len)
 {
-    return strncasecmp(lpszSrc, lpszCmp, len);
+    return StrCmpNIA(lpszSrc, lpszCmp, len);
 }
 
 /*************************************************************************
@@ -829,7 +792,7 @@ DWORD WINAPI StrCmpNICA(LPCSTR lpszSrc, LPCSTR lpszCmp, DWORD len)
  */
 DWORD WINAPI StrCmpNICW(LPCWSTR lpszSrc, LPCWSTR lpszCmp, DWORD len)
 {
-    return strncmpiW(lpszSrc, lpszCmp, len);
+    return StrCmpNIW(lpszSrc, lpszCmp, len);
 }
 
 /*************************************************************************
@@ -847,7 +810,7 @@ DWORD WINAPI StrCmpNICW(LPCWSTR lpszSrc, LPCWSTR lpszCmp, DWORD len)
  */
 DWORD WINAPI StrCmpCA(LPCSTR lpszSrc, LPCSTR lpszCmp)
 {
-    return strcmp(lpszSrc, lpszCmp);
+    return lstrcmpA(lpszSrc, lpszCmp);
 }
 
 /*************************************************************************
@@ -857,7 +820,7 @@ DWORD WINAPI StrCmpCA(LPCSTR lpszSrc, LPCSTR lpszCmp)
  */
 DWORD WINAPI StrCmpCW(LPCWSTR lpszSrc, LPCWSTR lpszCmp)
 {
-    return strcmpW(lpszSrc, lpszCmp);
+    return lstrcmpW(lpszSrc, lpszCmp);
 }
 
 /*************************************************************************
@@ -875,7 +838,7 @@ DWORD WINAPI StrCmpCW(LPCWSTR lpszSrc, LPCWSTR lpszCmp)
  */
 DWORD WINAPI StrCmpICA(LPCSTR lpszSrc, LPCSTR lpszCmp)
 {
-    return strcasecmp(lpszSrc, lpszCmp);
+    return lstrcmpiA(lpszSrc, lpszCmp);
 }
 
 /*************************************************************************
@@ -885,7 +848,7 @@ DWORD WINAPI StrCmpICA(LPCSTR lpszSrc, LPCSTR lpszCmp)
  */
 DWORD WINAPI StrCmpICW(LPCWSTR lpszSrc, LPCWSTR lpszCmp)
 {
-    return strcmpiW(lpszSrc, lpszCmp);
+    return lstrcmpiW(lpszSrc, lpszCmp);
 }
 
 /*************************************************************************
@@ -1775,29 +1738,29 @@ HRESULT WINAPI IUnknown_TranslateAcceleratorOCS(IUnknown *lpUnknown, LPMSG lpMsg
 /*************************************************************************
  * @  [SHLWAPI.189]
  *
- * Call IOleControlSite_GetExtendedControl() on an object.
+ * Call IOleControlSite_OnFocus() on an object.
  *
  * PARAMS
  *  lpUnknown [I] Object supporting the IOleControlSite interface.
- *  lppDisp   [O] Destination for resulting IDispatch.
+ *  fGotFocus [I] Whether focus was gained (TRUE) or lost (FALSE).
  *
  * RETURNS
  *  Success: S_OK.
  *  Failure: An HRESULT error code, or E_FAIL if lpUnknown is NULL.
  */
-DWORD WINAPI IUnknown_OnFocusOCS(IUnknown *lpUnknown, IDispatch** lppDisp)
+HRESULT WINAPI IUnknown_OnFocusOCS(IUnknown *lpUnknown, BOOL fGotFocus)
 {
   IOleControlSite* lpCSite = NULL;
   HRESULT hRet = E_FAIL;
 
-  TRACE("(%p,%p)\n", lpUnknown, lppDisp);
+  TRACE("(%p,%s)\n", lpUnknown, fGotFocus ? "TRUE" : "FALSE");
   if (lpUnknown)
   {
     hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleControlSite,
                                    (void**)&lpCSite);
     if (SUCCEEDED(hRet) && lpCSite)
     {
-      hRet = IOleControlSite_GetExtendedControl(lpCSite, lppDisp);
+      hRet = IOleControlSite_OnFocus(lpCSite, fGotFocus);
       IOleControlSite_Release(lpCSite);
     }
   }
@@ -2140,7 +2103,7 @@ typedef struct
 /*************************************************************************
  *      @      [SHLWAPI.208]
  *
- * Initialize an FDSA arrary.
+ * Initialize an FDSA arrary. 
  */
 BOOL WINAPI FDSA_Initialize(DWORD block_size, DWORD inc, FDSA_info *info, void *mem,
                             DWORD init_blocks)
@@ -2152,7 +2115,7 @@ BOOL WINAPI FDSA_Initialize(DWORD block_size, DWORD inc, FDSA_info *info, void *
 
     if(mem)
         memset(mem, 0, block_size * init_blocks);
-
+    
     info->num_items = 0;
     info->inc = inc;
     info->mem = mem;
@@ -2837,22 +2800,69 @@ HRESULT WINAPI SHInvokeDefaultCommand(HWND hWnd, IShellFolder* lpFolder, LPCITEM
  *
  * _SHPackDispParamsV
  */
-HRESULT WINAPI SHPackDispParamsV(LPVOID w, LPVOID x, LPVOID y, LPVOID z)
+HRESULT WINAPI SHPackDispParamsV(DISPPARAMS *params, VARIANTARG *args, UINT cnt, va_list valist)
 {
-       FIXME("%p %p %p %p\n",w,x,y,z);
-       return E_FAIL;
+  VARIANTARG *iter;
+
+  TRACE("(%p %p %u ...)\n", params, args, cnt);
+
+  params->rgvarg = args;
+  params->rgdispidNamedArgs = NULL;
+  params->cArgs = cnt;
+  params->cNamedArgs = 0;
+
+  iter = args+cnt;
+
+  while(iter-- > args) {
+    V_VT(iter) = va_arg(valist, enum VARENUM);
+
+    TRACE("vt=%d\n", V_VT(iter));
+
+    if(V_VT(iter) & VT_BYREF) {
+      V_BYREF(iter) = va_arg(valist, LPVOID);
+    } else {
+      switch(V_VT(iter)) {
+      case VT_I4:
+        V_I4(iter) = va_arg(valist, LONG);
+        break;
+      case VT_BSTR:
+        V_BSTR(iter) = va_arg(valist, BSTR);
+        break;
+      case VT_DISPATCH:
+        V_DISPATCH(iter) = va_arg(valist, IDispatch*);
+        break;
+      case VT_BOOL:
+        V_BOOL(iter) = va_arg(valist, int);
+        break;
+      case VT_UNKNOWN:
+        V_UNKNOWN(iter) = va_arg(valist, IUnknown*);
+        break;
+      default:
+        V_VT(iter) = VT_I4;
+        V_I4(iter) = va_arg(valist, LONG);
+      }
+    }
+  }
+
+  return S_OK;
 }
 
 /*************************************************************************
  *      @       [SHLWAPI.282]
  *
- * This function seems to be a forward to SHPackDispParamsV (whatever THAT
- * function does...).
+ * SHPackDispParams
  */
-HRESULT WINAPI SHPackDispParams(LPVOID w, LPVOID x, LPVOID y, LPVOID z)
+HRESULT WINAPIV SHPackDispParams(DISPPARAMS *params, VARIANTARG *args, UINT cnt, ...)
 {
-  FIXME("%p %p %p %p\n", w, x, y, z);
-  return E_FAIL;
+  va_list valist;
+  HRESULT hres;
+
+  va_start(valist, cnt);
+
+  hres = SHPackDispParamsV(params, args, cnt, valist);
+
+  va_end(valist);
+  return hres;
 }
 
 /*************************************************************************
@@ -2976,64 +2986,27 @@ HRESULT WINAPIV IUnknown_CPContainerInvokeParam(
   HRESULT result;
   IConnectionPoint *iCP;
   IConnectionPointContainer *iCPC;
+  DISPPARAMS dispParams = {buffer, NULL, cParams, 0};
+  va_list valist;
 
   if (!container)
     return E_NOINTERFACE;
 
   result = IUnknown_QueryInterface(container, &IID_IConnectionPointContainer,(LPVOID*) &iCPC);
-  if (SUCCEEDED(result))
-  {
-    result = IConnectionPointContainer_FindConnectionPoint(iCPC, riid, &iCP);
-    IConnectionPointContainer_Release(iCPC);
-  }
+  if (FAILED(result))
+      return result;
 
-  if (SUCCEEDED(result))
-  {
-    ULONG cnt;
-    VARIANTARG *curvar = buffer+cParams-1;
-    DISPPARAMS dispParams = {buffer, NULL, cParams, 0};
-    va_list valist;
+  result = IConnectionPointContainer_FindConnectionPoint(iCPC, riid, &iCP);
+  IConnectionPointContainer_Release(iCPC);
+  if(FAILED(result))
+      return result;
 
-    va_start(valist, cParams);
-    for(cnt=cParams;cnt>0;cnt--,curvar--) /* backwards for some reason */
-    {
-      enum VARENUM vt = va_arg(valist, enum VARENUM);
-      memset(curvar, 0, sizeof(*curvar));
-      if (vt & VT_BYREF)
-      {
-        V_VT(curvar) = vt;
-        V_BYREF(curvar) = va_arg(valist, LPVOID);
-      } else
-        switch(vt)
-        {
-        case VT_BSTR:
-          V_VT(curvar) = vt;
-          V_BSTR(curvar) = va_arg(valist, BSTR);
-          break;
-        case VT_DISPATCH:
-          V_VT(curvar) = vt;
-          V_DISPATCH(curvar) = va_arg(valist, IDispatch*);
-          break;
-        case VT_BOOL:
-          V_VT(curvar) = vt;
-          V_BOOL(curvar) = va_arg(valist, int);
-          break;
-        case VT_UNKNOWN:
-          V_VT(curvar) = vt;
-          V_UNKNOWN(curvar) = va_arg(valist, IUnknown*);
-          break;
-        case VT_I4:
-        default:
-          V_VT(curvar) = VT_I4;
-          V_I4(curvar) = va_arg(valist, LONG);
-          break;
-        }
-    }
-    va_end(valist);
+  va_start(valist, cParams);
+  SHPackDispParamsV(&dispParams, buffer, cParams, valist);
+  va_end(valist);
 
-    result = SHLWAPI_InvokeByIID(iCP, riid, dispId, &dispParams);
-    IConnectionPoint_Release(iCP);
-  }
+  result = SHLWAPI_InvokeByIID(iCP, riid, dispId, &dispParams);
+  IConnectionPoint_Release(iCP);
 
   return result;
 }
@@ -3536,7 +3509,7 @@ BOOL WINAPI GetOpenFileNameWrapW(LPOPENFILENAMEW ofn)
 /*************************************************************************
  *      @      [SHLWAPI.404]
  */
-HRESULT WINAPI IUnknown_EnumObjects(LPSHELLFOLDER lpFolder, HWND hwnd, SHCONTF flags, IEnumIDList **ppenum)
+HRESULT WINAPI SHIShellFolder_EnumObjects(LPSHELLFOLDER lpFolder, HWND hwnd, SHCONTF flags, IEnumIDList **ppenum)
 {
     IPersist *persist;
     HRESULT hr;
@@ -3675,16 +3648,6 @@ BOOL WINAPI SHFlushSFCacheWrap(void) {
   return TRUE;
 }
 
-/*************************************************************************
- *      @      [SHLWAPI.425]
- */
-BOOL WINAPI DeleteMenuWrap(HMENU hmenu, UINT pos, UINT flags)
-{
-    /* FIXME: This should do more than simply call DeleteMenu */
-    FIXME("%p %08x %08x): semi-stub\n", hmenu, pos, flags);
-    return DeleteMenu(hmenu, pos, flags);
-}
-
 /*************************************************************************
  *      @      [SHLWAPI.429]
  * FIXME I have no idea what this function does or what its arguments are.
@@ -4195,7 +4158,7 @@ DWORD WINAPI SHGetShellKey(DWORD a, DWORD b, DWORD c)
 /***********************************************************************
  *             SHQueueUserWorkItem (SHLWAPI.@)
  */
-BOOL WINAPI SHQueueUserWorkItem(LPTHREAD_START_ROUTINE pfnCallback,
+BOOL WINAPI SHQueueUserWorkItem(LPTHREAD_START_ROUTINE pfnCallback, 
         LPVOID pContext, LONG lPriority, DWORD_PTR dwTag,
         DWORD_PTR *pdwId, LPCSTR pszModule, DWORD dwFlags)
 {
@@ -4297,26 +4260,45 @@ DWORD WINAPI GetUIVersion(void)
 /***********************************************************************
  *              ShellMessageBoxWrapW [SHLWAPI.388]
  *
- * loads a string resource for a module, displays the string in a
- * message box and writes it into the logfile
- *
- * PARAMS
- *  mod      [I] the module containing the string resource
- *  unknown1 [I] FIXME
- *  uId      [I] the id of the string resource
- *  title    [I] the title of the message box
- *  unknown2 [I] FIXME
- *  filename [I] name of the logfile
+ * See shell32.ShellMessageBoxW
  *
- * RETURNS
- *  FIXME
+ * NOTE:
+ * shlwapi.ShellMessageBoxWrapW is a duplicate of shell32.ShellMessageBoxW
+ * because we can't forward to it in the .spec file since it's exported by
+ * ordinal. If you change the implementation here please update the code in
+ * shell32 as well.
  */
-BOOL WINAPI ShellMessageBoxWrapW(HMODULE mod, DWORD unknown1, UINT uId,
-                                 LPCWSTR title, DWORD unknown2, LPCWSTR filename)
+INT WINAPIV ShellMessageBoxWrapW(HINSTANCE hInstance, HWND hWnd, LPCWSTR lpText,
+                                 LPCWSTR lpCaption, UINT uType, ...)
 {
-    FIXME("%p %x %d %s %x %s\n",
-          mod, unknown1, uId, debugstr_w(title), unknown2, debugstr_w(filename));
-    return TRUE;
+    WCHAR szText[100], szTitle[100];
+    LPCWSTR pszText = szText, pszTitle = szTitle;
+    LPWSTR pszTemp;
+    va_list args;
+    int ret;
+
+    va_start(args, uType);
+
+    TRACE("(%p,%p,%p,%p,%08x)\n", hInstance, hWnd, lpText, lpCaption, uType);
+
+    if (IS_INTRESOURCE(lpCaption))
+        LoadStringW(hInstance, LOWORD(lpCaption), szTitle, sizeof(szTitle)/sizeof(szTitle[0]));
+    else
+        pszTitle = lpCaption;
+
+    if (IS_INTRESOURCE(lpText))
+        LoadStringW(hInstance, LOWORD(lpText), szText, sizeof(szText)/sizeof(szText[0]));
+    else
+        pszText = lpText;
+
+    FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
+                   pszText, 0, 0, (LPWSTR)&pszTemp, 0, &args);
+
+    va_end(args);
+
+    ret = MessageBoxW(hWnd, pszTemp, pszTitle, uType);
+    LocalFree((HLOCAL)pszTemp);
+    return ret;
 }
 
 HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *unk, REFIID service, REFIID clsid,
@@ -4342,7 +4324,10 @@ UINT WINAPI ZoneComputePaneSize(HWND hwnd)
     return 0x95;
 }
 
-void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
+/***********************************************************************
+ *              SHChangeNotifyWrap [SHLWAPI.394]
+ */
+void WINAPI SHChangeNotifyWrap(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
 {
     SHChangeNotify(wEventId, uFlags, dwItem1, dwItem2);
 }
@@ -4408,7 +4393,7 @@ PSECURITY_DESCRIPTOR WINAPI GetShellSecurityDescriptor(PSHELL_USER_PERMISSION *a
         BOOL ret = TRUE;
 
         if (!memcmp((void*)sid, (void*)&null_sid, sizeof(SHELL_USER_SID)))
-        {  /* current user's SID */
+        {  /* current user's SID */ 
             if (!cur_user)
             {
                 HANDLE Token;
@@ -4460,14 +4445,14 @@ PSECURITY_DESCRIPTOR WINAPI GetShellSecurityDescriptor(PSHELL_USER_PERMISSION *a
                 case ACCESS_ALLOWED_ACE_TYPE:
                     if (!AddAccessAllowedAce(pAcl, ACL_REVISION, sup->dwAccessMask, sid))
                         goto error;
-                    if (sup->fInherit && !AddAccessAllowedAceEx(pAcl, ACL_REVISION,
+                    if (sup->fInherit && !AddAccessAllowedAceEx(pAcl, ACL_REVISION, 
                                 (BYTE)sup->dwInheritMask, sup->dwInheritAccessMask, sid))
                         goto error;
                     break;
                 case ACCESS_DENIED_ACE_TYPE:
                     if (!AddAccessDeniedAce(pAcl, ACL_REVISION, sup->dwAccessMask, sid))
                         goto error;
-                    if (sup->fInherit && !AddAccessDeniedAceEx(pAcl, ACL_REVISION,
+                    if (sup->fInherit && !AddAccessDeniedAceEx(pAcl, ACL_REVISION, 
                                 (BYTE)sup->dwInheritMask, sup->dwInheritAccessMask, sid))
                         goto error;
                     break;
index cad43a3..b2005c1 100644 (file)
@@ -3308,7 +3308,7 @@ HRESULT WINAPI PathCreateFromUrlW(LPCWSTR pszUrl, LPWSTR pszPath,
 
     while(*pszPath == '\\')
         pszPath++;
-
     if(isalphaW(*pszPath) && pszPath[1] == '|' && pszPath[2] == '\\') /* c|\ -> c:\ */
         pszPath[1] = ':';
 
index 86f9661..1f52883 100644 (file)
@@ -210,7 +210,7 @@ LONG WINAPI SHRegCloseUSKey(
  * SHRegCreateUSKeyA  [SHLWAPI.@]
  *
  * Create or open a user-specific registry key.
- *
+ * 
  * PARAMS
  *  pszPath        [I] Key name to create or open.
  *  samDesired     [I] Wanted security access.
@@ -251,7 +251,7 @@ LONG WINAPI SHRegCreateUSKeyW(LPCWSTR pszPath, REGSAM samDesired, HUSKEY hRelati
  * PARAMS
  *  hUSKey      [I] Handle to an open registry key.
  *  pszValue    [I] Empty key name.
- *  delRegFlags [I] Flag that specifies the base from which to delete
+ *  delRegFlags [I] Flag that specifies the base from which to delete 
  *                  the key.
  *
  * RETURNS
@@ -1550,7 +1550,7 @@ DWORD WINAPI SHDeleteKeyW(HKEY hKey, LPCWSTR lpszSubKey)
         }
         if (dwRet == ERROR_NO_MORE_ITEMS)
           dwRet = ERROR_SUCCESS;
-
+    
         if (lpszName != szNameBuf)
           HeapFree(GetProcessHeap(), 0, lpszName); /* Free buffer if allocated */
       }
index e86833b..6aca8f9 100644 (file)
@@ -78,7 +78,7 @@ static ULONG WINAPI IStream_fnAddRef(IStream *iface)
 {
        ISHRegStream *This = (ISHRegStream *)iface;
        ULONG refCount = InterlockedIncrement(&This->ref);
-
+       
        TRACE("(%p)->(ref before=%u)\n",This, refCount - 1);
 
        return refCount;
index 6276efe..2f205e1 100644 (file)
@@ -1,13 +1,12 @@
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="shlwapi" type="win32dll" baseaddress="${BASEADDRESS_SHLWAPI}" installbase="system32" installname="shlwapi.dll" allowwarnings="true">
        <importlibrary definition="shlwapi.spec.def" />
        <include base="shlwapi">.</include>
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="__REACTOS__" />
        <define name="__WINESRC__" />
-       <define name="__USE_W32API" />
-       <define name="_WIN32_IE">0x600</define>
-       <define name="_WIN32_WINNT">0x501</define>
-       <define name="WINVER">0x501</define>
+       <define name="WINVER">0x600</define>
+       <define name="_WIN32_WINNT">0x600</define>
        <library>wine</library>
        <library>user32</library>
        <library>gdi32</library>
index f4bf6d5..e5cade5 100644 (file)
@@ -40,6 +40,6 @@
 #include "shlwapi_Pl.rc"
 #include "shlwapi_Pt.rc"
 #include "shlwapi_Ru.rc"
-#include "shlwapi_Tr.rc"
 #include "shlwapi_Sv.rc"
+#include "shlwapi_Tr.rc"
 #include "shlwapi_Uk.rc"
index bca51ee..0e63e9f 100644 (file)
@@ -13,7 +13,7 @@
 13  stdcall -noname RegisterDefaultAcceptHeaders(ptr ptr)
 14  stdcall -noname GetAcceptLanguagesA(ptr ptr)
 15  stdcall -noname GetAcceptLanguagesW(ptr ptr)
-16  stdcall SHCreateThread(ptr ptr long ptr)
+16  stdcall -noname SHCreateThread(ptr ptr long ptr)
 17  stdcall -noname SHWriteDataBlockList(ptr ptr)
 18  stdcall -noname SHReadDataBlockList(ptr ptr)
 19  stdcall -noname SHFreeDataBlockList(ptr)
 33  stdcall -noname IsCharDigitW(long)
 34  stdcall -noname IsCharXDigitW(long)
 35  stdcall -noname GetStringType3ExW(ptr long ptr)
-36  stdcall -noname AppendMenuWrapW(long long long wstr)
-37  stdcall @(ptr long long long long) user32.CallWindowProcW
-38  stdcall @(wstr) user32.CharLowerW
-39  stdcall @(wstr long) user32.CharLowerBuffW
-40  stdcall @(wstr) user32.CharNextW
-41  stdcall @(wstr wstr) user32.CharPrevW
-42  stdcall @(wstr) user32.CharToOemW
-43  stdcall @(wstr) user32.CharUpperW
-44  stdcall @(wstr long) user32.CharUpperBuffW
-45  stdcall @(long long wstr long wstr long) kernel32.CompareStringW
-46  stdcall @(long ptr long) user32.CopyAcceleratorTableW
-47  stdcall @(ptr long) user32.CreateAcceleratorTableW
-48  stdcall @(wstr wstr wstr ptr) gdi32.CreateDCW
-49  stdcall @(long ptr long ptr long) user32.CreateDialogParamA
-50  stdcall @(wstr ptr) kernel32.CreateDirectoryW
-51  stdcall @(ptr long long wstr) kernel32.CreateEventW
-52  stdcall @(wstr long long ptr long long long) kernel32.CreateFileW
-53  stdcall @(ptr) gdi32.CreateFontIndirectW
-54  stdcall @(wstr wstr wstr ptr) gdi32.CreateICW
-55  stdcall @(long wstr wstr long long long long long long long long ptr) user32.CreateWindowExW
-56  stdcall @(long long long long) user32.DefWindowProcW
-57  stdcall @(wstr) kernel32.DeleteFileW
-58  stdcall @(long ptr long ptr long) user32.DialogBoxIndirectParamW
-59  stdcall @(long wstr long ptr long) user32.DialogBoxParamW
-60  stdcall @(ptr) user32.DispatchMessageW
-61  stdcall @(long wstr long ptr long) user32.DrawTextW
-62  stdcall @(long wstr ptr long) gdi32.EnumFontFamiliesW
-63  stdcall @(long ptr ptr long long) gdi32.EnumFontFamiliesExW
-64  stdcall @(long wstr ptr long) kernel32.EnumResourceNamesW
-65  stdcall @(wstr ptr) kernel32.FindFirstFileW
-66  stdcall @(long wstr wstr) kernel32.FindResourceW
-67  stdcall @(wstr wstr) user32.FindWindowW
-68  stdcall @(long ptr long long ptr long ptr) kernel32.FormatMessageW
-69  stdcall @(long wstr ptr) user32.GetClassInfoW
-70  stdcall @(long long) user32.GetClassLongW
-71  stdcall @(long ptr long) user32.GetClassNameW
-72  stdcall @(long ptr long) user32.GetClipboardFormatNameW
-73  stdcall @(long ptr) kernel32.GetCurrentDirectoryW
-74  stdcall @(long long wstr long) user32.GetDlgItemTextW
-75  stdcall @(wstr) kernel32.GetFileAttributesW
-76  stdcall @(wstr long ptr ptr) kernel32.GetFullPathNameW
-77  stdcall @(long long ptr long) kernel32.GetLocaleInfoW
-78  stdcall @(long long ptr long long) user32.GetMenuStringW
-79  stdcall @(ptr long long long) user32.GetMessageW
-80  stdcall @(long ptr long) kernel32.GetModuleFileNameW
-81  stdcall @(ptr long) kernel32.GetSystemDirectoryW
-82  stdcall @(wstr wstr wstr long ptr ptr) kernel32.SearchPathW
-83  stdcall @(wstr) kernel32.GetModuleHandleW
-84  stdcall @(long long ptr) gdi32.GetObjectW
-85  stdcall @(wstr wstr long wstr) kernel32.GetPrivateProfileIntW
-86  stdcall @(wstr wstr wstr ptr long) kernel32.GetProfileStringW
-87  stdcall @(long wstr) user32.GetPropW
-88  stdcall @(long long wstr long ptr) kernel32.GetStringTypeExW
-89  stdcall @(wstr wstr long ptr) kernel32.GetTempFileNameW
-90  stdcall @(long ptr) kernel32.GetTempPathW
-91  stdcall @(long wstr long ptr) gdi32.GetTextExtentPoint32W
-92  stdcall @(long long ptr) gdi32.GetTextFaceW
-93  stdcall @(long ptr) gdi32.GetTextMetricsW
-94  stdcall @(long long) user32.GetWindowLongW
-95  stdcall @(long ptr long) user32.GetWindowTextW
-96  stdcall @(long) user32.GetWindowTextLengthW
-97  stdcall @(ptr long) kernel32.GetWindowsDirectoryW
-98  stdcall @(long long long long ptr) user32.InsertMenuW
-99  stdcall @(long ptr) user32.IsDialogMessageW
-100 stdcall @(long wstr) user32.LoadAcceleratorsW
-101 stdcall @(long wstr) user32.LoadBitmapW
-102 stdcall @(long wstr) user32.LoadCursorW
-103 stdcall @(long wstr) user32.LoadIconW
-104 stdcall @(long wstr long long long long) user32.LoadImageW
-105 stdcall @(wstr long long) kernel32.LoadLibraryExW
-106 stdcall @(long wstr) user32.LoadMenuW
-107 stdcall @(long long ptr long) user32.LoadStringW
-108 stdcall @(ptr) user32.MessageBoxIndirectW
-109 stdcall @(long long long long ptr) user32.ModifyMenuW
-110 stdcall @(long long long long) gdi32.GetCharWidth32W
-111 stdcall @(long wstr long long ptr long) gdi32.GetCharacterPlacementW
-112 stdcall @(wstr wstr long) kernel32.CopyFileW
-113 stdcall @(wstr wstr) kernel32.MoveFileW
-114 stdcall @(ptr ptr) user32.OemToCharW
-115 stdcall @(wstr) kernel32.OutputDebugStringW
-116 stdcall @(ptr long long long long) user32.PeekMessageW
-117 stdcall @(long long long long) user32.PostMessageW
-118 stdcall @(long long long long) user32.PostThreadMessageW
-119 stdcall @(long wstr ptr) advapi32.RegCreateKeyW
-120 stdcall @(long wstr long ptr long long ptr ptr ptr) advapi32.RegCreateKeyExW
-121 stdcall @(long wstr) advapi32.RegDeleteKeyW
-122 stdcall @(long long ptr long) advapi32.RegEnumKeyW
-123 stdcall @(long long ptr ptr ptr ptr ptr ptr) advapi32.RegEnumKeyExW
-124 stdcall @(long wstr ptr) advapi32.RegOpenKeyW
-125 stdcall @(long wstr long long ptr) advapi32.RegOpenKeyExW
-126 stdcall @(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) advapi32.RegQueryInfoKeyW
-127 stdcall @(long wstr ptr ptr) advapi32.RegQueryValueW
-128 stdcall @(long wstr ptr ptr ptr ptr) advapi32.RegQueryValueExW
-129 stdcall @(long wstr long ptr long) advapi32.RegSetValueW
-130 stdcall @(long wstr long long ptr long) advapi32.RegSetValueExW
-131 stdcall @(ptr) user32.RegisterClassW
-132 stdcall @(wstr) user32.RegisterClipboardFormatW
-133 stdcall @(wstr) user32.RegisterWindowMessageW
-134 stdcall @(long wstr) user32.RemovePropW
-135 stdcall @(long long long long long) user32.SendDlgItemMessageW
-136 stdcall @(long long long long) user32.SendMessageW
-137 stdcall @(wstr) kernel32.SetCurrentDirectoryW
-138 stdcall -noname SetDlgItemTextWrapW(long long wstr)
-139 stdcall @(long long long ptr) user32.SetMenuItemInfoW
-140 stdcall @(long wstr long) user32.SetPropW
-141 stdcall @(long long long) user32.SetWindowLongW
-142 stdcall @(long long long long) user32.SetWindowsHookExW
-143 stdcall @(long wstr) user32.SetWindowTextW
-144 stdcall @(long ptr) gdi32.StartDocW
-145 stdcall @(long long ptr long) user32.SystemParametersInfoW
-146 stdcall @(long long ptr) user32.TranslateAcceleratorW
-147 stdcall @(wstr long) user32.UnregisterClassW
-148 stdcall @(long) user32.VkKeyScanW
-149 stdcall @(long wstr long long) user32.WinHelpW
-150 stdcall @(ptr wstr ptr) user32.wvsprintfW
+36  stdcall -noname AppendMenuWrapW(long long long wstr) user32.AppendMenuW
+37  stdcall -noname CallWindowProcWrapW(ptr long long long long) user32.CallWindowProcW
+38  stdcall -noname CharLowerWrapW(wstr) user32.CharLowerW
+39  stdcall -noname CharLowerBuffWrapW(wstr long) user32.CharLowerBuffW
+40  stdcall -noname CharNextWrapW(wstr) user32.CharNextW
+41  stdcall -noname CharPrevWrapW(wstr wstr) user32.CharPrevW
+42  stdcall -noname CharToOemWrapW(wstr) user32.CharToOemW
+43  stdcall -noname CharUpperWrapW(wstr) user32.CharUpperW
+44  stdcall -noname CharUpperBuffWrapW(wstr long) user32.CharUpperBuffW
+45  stdcall -noname CompareStringWrapW(long long wstr long wstr long) kernel32.CompareStringW
+46  stdcall -noname CopyAcceleratorTableWrapW(long ptr long) user32.CopyAcceleratorTableW
+47  stdcall -noname CreateAcceleratorTableWrapW(ptr long) user32.CreateAcceleratorTableW
+48  stdcall -noname CreateDCWrapW(wstr wstr wstr ptr) gdi32.CreateDCW
+49  stdcall -noname CreateDialogParamWrapW(long ptr long ptr long) user32.CreateDialogParamW
+50  stdcall -noname CreateDirectoryWrapW(wstr ptr) kernel32.CreateDirectoryW
+51  stdcall -noname CreateEventWrapW(ptr long long wstr) kernel32.CreateEventW
+52  stdcall -noname CreateFileWrapW(wstr long long ptr long long long) kernel32.CreateFileW
+53  stdcall -noname CreateFontIndirectWrapW(ptr) gdi32.CreateFontIndirectW
+54  stdcall -noname CreateICWrapW(wstr wstr wstr ptr) gdi32.CreateICW
+55  stdcall -noname CreateWindowExWrapW(long wstr wstr long long long long long long long long ptr) user32.CreateWindowExW
+56  stdcall -noname DefWindowProcWrapW(long long long long) user32.DefWindowProcW
+57  stdcall -noname DeleteFileWrapW(wstr) kernel32.DeleteFileW
+58  stdcall -noname DialogBoxIndirectParamWrapW(long ptr long ptr long) user32.DialogBoxIndirectParamW
+59  stdcall -noname DialogBoxParamWrapW(long wstr long ptr long) user32.DialogBoxParamW
+60  stdcall -noname DispatchMessageWrapW(ptr) user32.DispatchMessageW
+61  stdcall -noname DrawTextWrapW(long wstr long ptr long) user32.DrawTextW
+62  stdcall -noname EnumFontFamiliesWrapW(long wstr ptr long) gdi32.EnumFontFamiliesW
+63  stdcall -noname EnumFontFamiliesExWrapW(long ptr ptr long long) gdi32.EnumFontFamiliesExW
+64  stdcall -noname EnumResourceNamesWrapW(long wstr ptr long) kernel32.EnumResourceNamesW
+65  stdcall -noname FindFirstFileWrapW(wstr ptr) kernel32.FindFirstFileW
+66  stdcall -noname FindResourceWrapW(long wstr wstr) kernel32.FindResourceW
+67  stdcall -noname FindWindowWrapW(wstr wstr) user32.FindWindowW
+68  stdcall -noname FormatMessageWrapW(long ptr long long ptr long ptr) kernel32.FormatMessageW
+69  stdcall -noname GetClassInfoWrapW(long wstr ptr) user32.GetClassInfoW
+70  stdcall -noname GetClassLongWrapW(long long) user32.GetClassLongW
+71  stdcall -noname GetClassNameWrapW(long ptr long) user32.GetClassNameW
+72  stdcall -noname GetClipboardFormatNameWrapW(long ptr long) user32.GetClipboardFormatNameW
+73  stdcall -noname GetCurrentDirectoryWrapW(long ptr) kernel32.GetCurrentDirectoryW
+74  stdcall -noname GetDlgItemTextWrapW(long long wstr long) user32.GetDlgItemTextW
+75  stdcall -noname GetFileAttributesWrapW(wstr) kernel32.GetFileAttributesW
+76  stdcall -noname GetFullPathNameWrapW(wstr long ptr ptr) kernel32.GetFullPathNameW
+77  stdcall -noname GetLocaleInfoWrapW(long long ptr long) kernel32.GetLocaleInfoW
+78  stdcall -noname GetMenuStringWrapW(long long ptr long long) user32.GetMenuStringW
+79  stdcall -noname GetMessageWrapW(ptr long long long) user32.GetMessageW
+80  stdcall -noname GetModuleFileNameWrapW(long ptr long) kernel32.GetModuleFileNameW
+81  stdcall -noname GetSystemDirectoryWrapW(ptr long) kernel32.GetSystemDirectoryW
+82  stdcall -noname SearchPathWrapW(wstr wstr wstr long ptr ptr) kernel32.SearchPathW
+83  stdcall -noname GetModuleHandleWrapW(wstr) kernel32.GetModuleHandleW
+84  stdcall -noname GetObjectWrapW(long long ptr) gdi32.GetObjectW
+85  stdcall -noname GetPrivateProfileIntWrapW(wstr wstr long wstr) kernel32.GetPrivateProfileIntW
+86  stdcall -noname GetProfileStringWrapW(wstr wstr wstr ptr long) kernel32.GetProfileStringW
+87  stdcall -noname GetPropWrapW(long wstr) user32.GetPropW
+88  stdcall -noname GetStringTypeExWrapW(long long wstr long ptr) kernel32.GetStringTypeExW
+89  stdcall -noname GetTempFileNameWrapW(wstr wstr long ptr) kernel32.GetTempFileNameW
+90  stdcall -noname GetTempPathWrapW(long ptr) kernel32.GetTempPathW
+91  stdcall -noname GetTextExtentPoint32WrapW(long wstr long ptr) gdi32.GetTextExtentPoint32W
+92  stdcall -noname GetTextFaceWrapW(long long ptr) gdi32.GetTextFaceW
+93  stdcall -noname GetTextMetricsWrapW(long ptr) gdi32.GetTextMetricsW
+94  stdcall -noname GetWindowLongWrapW(long long) user32.GetWindowLongW
+95  stdcall -noname GetWindowTextWrapW(long ptr long) user32.GetWindowTextW
+96  stdcall -noname GetWindowTextLengthWrapW(long) user32.GetWindowTextLengthW
+97  stdcall -noname GetWindowsDirectoryWrapW(ptr long) kernel32.GetWindowsDirectoryW
+98  stdcall -noname InsertMenuWrapW(long long long long ptr) user32.InsertMenuW
+99  stdcall -noname IsDialogMessageWrapW(long ptr) user32.IsDialogMessageW
+100 stdcall -noname LoadAcceleratorsWrapW(long wstr) user32.LoadAcceleratorsW
+101 stdcall -noname LoadBitmapWrapW(long wstr) user32.LoadBitmapW
+102 stdcall -noname LoadCursorWrapW(long wstr) user32.LoadCursorW
+103 stdcall -noname LoadIconWrapW(long wstr) user32.LoadIconW
+104 stdcall -noname LoadImageWrapW(long wstr long long long long) user32.LoadImageW
+105 stdcall -noname LoadLibraryExWrapW(wstr long long) kernel32.LoadLibraryExW
+106 stdcall -noname LoadMenuWrapW(long wstr) user32.LoadMenuW
+107 stdcall -noname LoadStringWrapW(long long ptr long) user32.LoadStringW
+108 stdcall -noname MessageBoxIndirectWrapW(ptr) user32.MessageBoxIndirectW
+109 stdcall -noname ModifyMenuWrapW(long long long long ptr) user32.ModifyMenuW
+110 stdcall -noname GetCharWidth32WrapW(long long long long) gdi32.GetCharWidth32W
+111 stdcall -noname GetCharacterPlacementWrapW(long wstr long long ptr long) gdi32.GetCharacterPlacementW
+112 stdcall -noname CopyFileWrapW(wstr wstr long) kernel32.CopyFileW
+113 stdcall -noname MoveFileWrapW(wstr wstr) kernel32.MoveFileW
+114 stdcall -noname OemToCharWrapW(ptr ptr) user32.OemToCharW
+115 stdcall -noname OutputDebugStringWrapW(wstr) kernel32.OutputDebugStringW
+116 stdcall -noname PeekMessageWrapW(ptr long long long long) user32.PeekMessageW
+117 stdcall -noname PostMessageWrapW(long long long long) user32.PostMessageW
+118 stdcall -noname PostThreadMessageWrapW(long long long long) user32.PostThreadMessageW
+119 stdcall -noname RegCreateKeyWrapW(long wstr ptr) advapi32.RegCreateKeyW
+120 stdcall -noname RegCreateKeyExWrapW(long wstr long ptr long long ptr ptr ptr) advapi32.RegCreateKeyExW
+121 stdcall -noname RegDeleteKeyWrapW(long wstr) advapi32.RegDeleteKeyW
+122 stdcall -noname RegEnumKeyWrapW(long long ptr long) advapi32.RegEnumKeyW
+123 stdcall -noname RegEnumKeyExWrapW(long long ptr ptr ptr ptr ptr ptr) advapi32.RegEnumKeyExW
+124 stdcall -noname RegOpenKeyWrapW(long wstr ptr) advapi32.RegOpenKeyW
+125 stdcall -noname RegOpenKeyExWrapW(long wstr long long ptr) advapi32.RegOpenKeyExW
+126 stdcall -noname RegQueryInfoKeyWrapW(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) advapi32.RegQueryInfoKeyW
+127 stdcall -noname RegQueryValueWrapW(long wstr ptr ptr) advapi32.RegQueryValueW
+128 stdcall -noname RegQueryValueExWrapW(long wstr ptr ptr ptr ptr) advapi32.RegQueryValueExW
+129 stdcall -noname RegSetValueWrapW(long wstr long ptr long) advapi32.RegSetValueW
+130 stdcall -noname RegSetValueExWrapW(long wstr long long ptr long) advapi32.RegSetValueExW
+131 stdcall -noname RegisterClassWrapW(ptr) user32.RegisterClassW
+132 stdcall -noname RegisterClipboardFormatWrapW(wstr) user32.RegisterClipboardFormatW
+133 stdcall -noname RegisterWindowMessageWrapW(wstr) user32.RegisterWindowMessageW
+134 stdcall -noname RemovePropWrapW(long wstr) user32.RemovePropW
+135 stdcall -noname SendDlgItemMessageWrapW(long long long long long) user32.SendDlgItemMessageW
+136 stdcall -noname SendMessageWrapW(long long long long) user32.SendMessageW
+137 stdcall -noname SetCurrentDirectoryWrapW(wstr) kernel32.SetCurrentDirectoryW
+138 stdcall -noname SetDlgItemTextWrapW(long long wstr) user32.SetDlgItemTextW
+139 stdcall -noname SetMenuItemInfoWrapW(long long long ptr) user32.SetMenuItemInfoW
+140 stdcall -noname SetPropWrapW(long wstr long) user32.SetPropW
+141 stdcall -noname SetWindowLongWrapW(long long long) user32.SetWindowLongW
+142 stdcall -noname SetWindowsHookExWrapW(long long long long) user32.SetWindowsHookExW
+143 stdcall -noname SetWindowTextWrapW(long wstr) user32.SetWindowTextW
+144 stdcall -noname StartDocWrapW(long ptr) gdi32.StartDocW
+145 stdcall -noname SystemParametersInfoWrapW(long long ptr long) user32.SystemParametersInfoW
+146 stdcall -noname TranslateAcceleratorWrapW(long long ptr) user32.TranslateAcceleratorW
+147 stdcall -noname UnregisterClassWrapW(wstr long) user32.UnregisterClassW
+148 stdcall -noname VkKeyScanWrapW(long) user32.VkKeyScanW
+149 stdcall -noname WinHelpWrapW(long wstr long long) user32.WinHelpW
+150 stdcall -noname wvsprintfWrapW(ptr wstr ptr) user32.wvsprintfW
 151 stdcall -noname StrCmpNCA(str ptr long)
 152 stdcall -noname StrCmpNCW(wstr wstr long)
 153 stdcall -noname StrCmpNICA(long long long)
 156 stdcall -noname StrCmpCW(wstr wstr)
 157 stdcall -noname StrCmpICA(str str)
 158 stdcall -noname StrCmpICW(wstr wstr)
-159 stdcall @(long long wstr long wstr long) kernel32.CompareStringW
+159 stdcall -noname CompareStringAltW(long long wstr long wstr long) kernel32.CompareStringW
 160 stdcall -noname SHAboutInfoA(ptr long)
 161 stdcall -noname SHAboutInfoW(ptr long)
 162 stdcall -noname SHTruncateString(str long)
 181 stdcall -noname SHEnableMenuItem(long long long)
 182 stdcall -noname SHCheckMenuItem(long long long)
 183 stdcall -noname SHRegisterClassA(ptr)
-184 stdcall @(ptr ptr long) SHLWAPI_184
+184 stdcall -noname IStream_Read(ptr ptr long) SHIStream_Read
 185 stdcall -noname SHMessageBoxCheckA(ptr str str long long str)
 186 stdcall -noname SHSimulateDrop(ptr ptr long ptr ptr)
 187 stdcall -noname SHLoadFromPropertyBag(ptr ptr)
 209 stdcall -noname FDSA_Destroy(ptr)
 210 stdcall -noname FDSA_InsertItem(ptr long ptr)
 211 stdcall -noname FDSA_DeleteItem(ptr long)
-212 stdcall @(ptr ptr long) SHLWAPI_212
+212 stdcall -noname IStream_Write(ptr ptr long) SHIStream_Write
 213 stdcall -noname IStream_Reset(ptr)
 214 stdcall -noname IStream_Size(ptr ptr)
 215 stdcall -noname SHAnsiToUnicode(str ptr long)
 219 stdcall -noname QISearch(long long long long)
 220 stub -noname SHSetDefaultDialogFont
 221 stdcall -noname SHRemoveDefaultDialogFont(ptr)
-222 stdcall -noname _SHGlobalCounterCreate(long)
-223 stdcall -noname _SHGlobalCounterGetValue(long)
-224 stdcall -noname _SHGlobalCounterIncrement(long)
+222 stdcall -noname SHGlobalCounterCreate(long)
+223 stdcall -noname SHGlobalCounterGetValue(long)
+224 stdcall -noname SHGlobalCounterIncrement(long)
 225 stdcall -noname SHStripMneumonicW(wstr)
 226 stub -noname ZoneCheckPathA
 227 stub -noname ZoneCheckPathW
 278 stdcall -noname SHCreateWorkerWindowW(long long long long long long)
 279 stdcall -noname SHInvokeDefaultCommand(ptr ptr ptr)
 280 stdcall -noname SHRegGetIntW(ptr wstr long)
-281 stdcall -noname SHPackDispParamsV(ptr ptr ptr ptr)
-282 stdcall -noname SHPackDispParams(ptr ptr ptr ptr)
+281 stdcall -noname SHPackDispParamsV(ptr ptr long ptr)
+282 varargs -noname SHPackDispParams(ptr ptr long)
 283 stub -noname IConnectionPoint_InvokeWithCancel
 284 stdcall -noname IConnectionPoint_SimpleInvoke(ptr long ptr)
 285 stdcall -noname IConnectionPoint_OnChanged(ptr long)
 295 stdcall -noname SHSetIniStringW(wstr ptr wstr wstr)
 296 stub -noname CreateURLFileContentsW
 297 stub -noname CreateURLFileContentsA
-298 stdcall @(wstr wstr wstr wstr) kernel32.WritePrivateProfileStringW
-299 stdcall @(long long long long ptr wstr long ptr) gdi32.ExtTextOutW
-300 stdcall @(long long long long long long long long long long long long long wstr) gdi32.CreateFontW
-301 stdcall @(long wstr long ptr long ptr) user32.DrawTextExW
-302 stdcall @(long long long ptr) user32.GetMenuItemInfoW
-303 stdcall @(long long long ptr) user32.InsertMenuItemW
-304 stdcall @(wstr) gdi32.CreateMetaFileW
-305 stdcall @(ptr long wstr) kernel32.CreateMutexW
-306 stdcall @(wstr ptr long) kernel32.ExpandEnvironmentStringsW
-307 stdcall @(ptr long long wstr) kernel32.CreateSemaphoreW
-308 stdcall @(ptr long) kernel32.IsBadStringPtrW
-309 stdcall @(wstr) kernel32.LoadLibraryW
-310 stdcall @(long long ptr wstr ptr long) kernel32.GetTimeFormatW
-311 stdcall @(long long ptr wstr ptr long) kernel32.GetDateFormatW
-312 stdcall @(wstr wstr wstr ptr long wstr) kernel32.GetPrivateProfileStringW
+298 stdcall -noname WritePrivateProfileStringWrapW(wstr wstr wstr wstr) kernel32.WritePrivateProfileStringW
+299 stdcall -noname ExtTextOutWrapW(long long long long ptr wstr long ptr) gdi32.ExtTextOutW
+300 stdcall -noname CreateFontWrapW(long long long long long long long long long long long long long wstr) gdi32.CreateFontW
+301 stdcall -noname DrawTextExWrapW(long wstr long ptr long ptr) user32.DrawTextExW
+302 stdcall -noname GetMenuItemInfoWrapW(long long long ptr) user32.GetMenuItemInfoW
+303 stdcall -noname InsertMenuItemWrapW(long long long ptr) user32.InsertMenuItemW
+304 stdcall -noname CreateMetaFileWrapW(wstr) gdi32.CreateMetaFileW
+305 stdcall -noname CreateMutexWrapW(ptr long wstr) kernel32.CreateMutexW
+306 stdcall -noname ExpandEnvironmentStringsWrapW(wstr ptr long) kernel32.ExpandEnvironmentStringsW
+307 stdcall -noname CreateSemaphoreWrapW(ptr long long wstr) kernel32.CreateSemaphoreW
+308 stdcall -noname IsBadStringPtrWrapW(ptr long) kernel32.IsBadStringPtrW
+309 stdcall -noname LoadLibraryWrapW(wstr) kernel32.LoadLibraryW
+310 stdcall -noname GetTimeFormatWrapW(long long ptr wstr ptr long) kernel32.GetTimeFormatW
+311 stdcall -noname GetDateFormatWrapW(long long ptr wstr ptr long) kernel32.GetDateFormatW
+312 stdcall -noname GetPrivateProfileStringWrapW(wstr wstr wstr ptr long wstr) kernel32.GetPrivateProfileStringW
 313 stdcall -noname SHGetFileInfoWrapW(ptr long ptr long long)
-314 stdcall @(ptr) user32.RegisterClassExW
-315 stdcall @(long wstr ptr) user32.GetClassInfoExW
+314 stdcall -noname RegisterClassExWrapW(ptr) user32.RegisterClassExW
+315 stdcall -noname GetClassInfoExWrapW(long wstr ptr) user32.GetClassInfoExW
 316 stub -noname IShellFolder_GetDisplayNameOf
 317 stub -noname IShellFolder_ParseDisplayName
 318 stdcall -noname DragQueryFileWrapW(long long wstr long)
-319 stdcall @(long long wstr wstr) user32.FindWindowExW
+319 stdcall -noname FindWindowExWrapW(long long wstr wstr) user32.FindWindowExW
 320 stdcall -noname RegisterMIMETypeForExtensionA(str str)
 321 stdcall -noname RegisterMIMETypeForExtensionW(wstr wstr)
 322 stdcall -noname UnregisterMIMETypeForExtensionA(str)
 329 stdcall -noname GetMIMETypeSubKeyW(wstr ptr long)
 330 stdcall -noname MIME_GetExtensionA(str ptr long)
 331 stdcall -noname MIME_GetExtensionW(wstr ptr long)
-332 stdcall @(ptr long) user32.CallMsgFilterW
+332 stdcall -noname CallMsgFilterWrapW(ptr long) user32.CallMsgFilterW
 333 stdcall -noname SHBrowseForFolderWrapW(ptr)
 334 stdcall -noname SHGetPathFromIDListWrapW(ptr ptr)
 335 stdcall -noname ShellExecuteExWrapW(ptr)
 336 stdcall -noname SHFileOperationWrapW(ptr)
-337 stdcall @(wstr long ptr ptr long) user32.PrivateExtractIconExW
-338 stdcall @(wstr long) kernel32.SetFileAttributesW
-339 stdcall @(long long wstr ptr ptr long) kernel32.GetNumberFormatW
-340 stdcall @(long wstr wstr long) user32.MessageBoxW
-341 stdcall @(long ptr) kernel32.FindNextFileW
+337 stdcall -noname ExtractIconExWrapW(wstr long ptr ptr long) user32.PrivateExtractIconExW
+338 stdcall -noname SetFileAttributesWrapW(wstr long) kernel32.SetFileAttributesW
+339 stdcall -noname GetNumberFormatWrapW(long long wstr ptr ptr long) kernel32.GetNumberFormatW
+340 stdcall -noname MessageBoxWrapW(long wstr wstr long) user32.MessageBoxW
+341 stdcall -noname FindNextFileWrapW(long ptr) kernel32.FindNextFileW
 342 stdcall -noname SHInterlockedCompareExchange(ptr ptr ptr)
 343 stdcall -noname SHRegGetCLSIDKeyA(ptr str long long ptr)
 344 stdcall -noname SHRegGetCLSIDKeyW(ptr wstr long long ptr)
 345 stdcall -noname SHAnsiToAnsi(str ptr long)
 346 stdcall -noname SHUnicodeToUnicode(wstr ptr long)
-347 stdcall @(long wstr) advapi32.RegDeleteValueW
+347 stdcall -noname RegDeleteValueWrapW(long wstr) advapi32.RegDeleteValueW
 348 stub -noname SHGetFileDescriptionW
 349 stub -noname SHGetFileDescriptionA
 350 stdcall -noname GetFileVersionInfoSizeWrapW(wstr ptr)
 353 stub -noname SHFormatDateTimeA
 354 stub -noname SHFormatDateTimeW
 355 stdcall -noname IUnknown_EnableModeless(ptr long)
-356 stdcall -noname _CreateAllAccessSecurityAttributes(ptr ptr long)
+356 stdcall -noname CreateAllAccessSecurityAttributes(ptr ptr long)
 357 stdcall -noname SHGetNewLinkInfoWrapW(wstr wstr wstr long long)
 358 stdcall -noname SHDefExtractIconWrapW(wstr long long ptr ptr long)
-359 stdcall @(long long wstr) kernel32.OpenEventW
-360 stdcall @(wstr) kernel32.RemoveDirectoryW
-361 stdcall @(wstr ptr long) kernel32.GetShortPathNameW
-362 stdcall @(ptr ptr) advapi32.GetUserNameW
+359 stdcall -noname OpenEventWrapW(long long wstr) kernel32.OpenEventW
+360 stdcall -noname RemoveDirectoryWrapW(wstr) kernel32.RemoveDirectoryW
+361 stdcall -noname GetShortPathNameWrapW(wstr ptr long) kernel32.GetShortPathNameW
+362 stdcall -noname GetUserNameWrapW(ptr ptr) advapi32.GetUserNameW
 363 stdcall -noname SHInvokeCommand(ptr ptr ptr long)
 364 stdcall -noname DoesStringRoundTripA(str ptr long)
 365 stdcall -noname DoesStringRoundTripW(wstr ptr long)
-366 stdcall @(long long ptr ptr ptr ptr ptr ptr) advapi32.RegEnumValueW
-367 stdcall @(wstr wstr ptr long wstr) kernel32.WritePrivateProfileStructW
-368 stdcall @(wstr wstr ptr long wstr) kernel32.GetPrivateProfileStructW
-369 stdcall @(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
+366 stdcall -noname RegEnumValueWrapW(long long ptr ptr ptr ptr ptr ptr) advapi32.RegEnumValueW
+367 stdcall -noname WritePrivateProfileStructWrapW(wstr wstr ptr long wstr) kernel32.WritePrivateProfileStructW
+368 stdcall -noname GetPrivateProfileStructWrapW(wstr wstr ptr long wstr) kernel32.GetPrivateProfileStructW
+369 stdcall -noname CreateProcessWrapW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
 370 stdcall -noname ExtractIconWrapW(long wstr long)
 371 stdcall -noname DdeInitializeWrapW(ptr ptr long long) user32.DdeInitializeW
 372 stdcall -noname DdeCreateStringHandleWrapW(long ptr long) user32.DdeCreateStringHandleW
 374 stub -noname SHCheckDiskForMediaA
 375 stub -noname SHCheckDiskForMediaW
 376 stdcall -noname MLGetUILanguage() kernel32.GetUserDefaultUILanguage
-377 stdcall MLLoadLibraryA(str long long)
-378 stdcall MLLoadLibraryW(wstr long long)
+377 stdcall -noname MLLoadLibraryA(str long long)
+378 stdcall -noname MLLoadLibraryW(wstr long long)
 379 stub -noname Shell_GetCachedImageIndexWrapW
 380 stub -noname Shell_GetCachedImageIndexWrapA
 381 stub -noname AssocCopyVerbs
 385 stub -noname SHLoadRawAccelerators
 386 stub -noname SHQueryRawAccelerator
 387 stub -noname SHQueryRawAcceleratorMsg
-388 stdcall -noname ShellMessageBoxWrapW(ptr long long wstr long wstr)
+388 varargs -noname ShellMessageBoxWrapW(long long wstr wstr long)
 389 stdcall -noname GetSaveFileNameWrapW(ptr)
 390 stdcall -noname WNetRestoreConnectionWrapW(long wstr)
 391 stdcall -noname WNetGetLastErrorWrapW(ptr ptr long ptr long)
 392 stdcall -noname EndDialogWrap(ptr ptr) user32.EndDialog
-393 stdcall @(long ptr long ptr long) user32.CreateDialogIndirectParamW
-394 stdcall -noname SHChangeNotify(long long ptr ptr)
+393 stdcall -noname CreateDialogIndirectParamWrapW(long ptr long ptr long) user32.CreateDialogIndirectParamW
+394 stdcall -noname SHChangeNotifyWrap(long long ptr ptr)
 395 stub -noname MLWinHelpA
 396 stub -noname MLHtmlHelpA
 397 stub -noname MLWinHelpW
 401 stdcall -noname PageSetupDlgWrapW(ptr)
 402 stdcall -noname PrintDlgWrapW(ptr)
 403 stdcall -noname GetOpenFileNameWrapW(ptr)
-404 stdcall -noname IUnknown_EnumObjects(ptr ptr long ptr)
+404 stdcall -noname IShellFolder_EnumObjects(ptr ptr long ptr) SHIShellFolder_EnumObjects
 405 stdcall -noname MLBuildResURLA(str ptr long str ptr long)
 406 stdcall -noname MLBuildResURLW(wstr ptr long wstr ptr long)
 407 stub -noname AssocMakeProgid
 419 stdcall -noname SHFlushSFCacheWrap()
 420 stub @ # CMemStream::Commit
 421 stub -noname SHLoadPersistedDataObject
-422 stdcall -noname _SHGlobalCounterCreateNamedA(str long)
-423 stdcall -noname _SHGlobalCounterCreateNamedW(wstr long)
-424 stdcall -noname _SHGlobalCounterDecrement(long)
-425 stdcall -noname DeleteMenuWrap(ptr long long)
-426 stub -noname DestroyMenuWrap
-427 stub -noname TrackPopupMenuWrap
-428 stdcall @(long long long long long ptr) user32.TrackPopupMenuEx
+422 stdcall -noname SHGlobalCounterCreateNamedA(str long)
+423 stdcall -noname SHGlobalCounterCreateNamedW(wstr long)
+424 stdcall -noname SHGlobalCounterDecrement(long)
+425 stdcall -noname DeleteMenuWrap(ptr long long) user32.DeleteMenu
+426 stdcall -noname DestroyMenuWrap(long) user32.DestroyMenu
+427 stdcall -noname TrackPopupMenuWrap(long long long long long long ptr) user32.TrackPopupMenu
+428 stdcall -noname TrackPopupMenuExWrap(long long long long long ptr) user32.TrackPopupMenuEx
 429 stdcall -noname MLIsMLHInstance(long)
 430 stdcall -noname MLSetMLHInstance(long long)
 431 stdcall -noname MLClearMLHInstance(long)
 432 stub -noname SHSendMessageBroadcastA
 433 stub -noname SHSendMessageBroadcastW
-434 stdcall @(long long long long long long ptr) user32.SendMessageTimeoutW
+434 stdcall -noname SendMessageTimeoutWrapW(long long long long long long ptr) user32.SendMessageTimeoutW
 435 stdcall -noname CLSIDFromProgIDWrap(wstr ptr) ole32.CLSIDFromProgID
 436 stdcall -noname CLSIDFromStringWrap(wstr ptr)
 437 stdcall -noname IsOS(long)
 439 stdcall -noname SHLoadRegUIStringW(ptr wstr ptr long)
 440 stdcall -noname SHGetWebFolderFilePathA(str ptr long)
 441 stdcall -noname SHGetWebFolderFilePathW(wstr ptr long)
-442 stdcall @(wstr ptr long) kernel32.GetEnvironmentVariableW
-443 stdcall @(ptr long) kernel32.GetSystemWindowsDirectoryA
-444 stdcall @(ptr long) kernel32.GetSystemWindowsDirectoryW
+442 stdcall -noname GetEnvironmentVariableWrapW(wstr ptr long) kernel32.GetEnvironmentVariableW
+443 stdcall -noname SHGetSystemWindowsDirectoryA(ptr long) kernel32.GetSystemWindowsDirectoryA
+444 stdcall -noname SHGetSystemWindowsDirectoryW(ptr long) kernel32.GetSystemWindowsDirectoryW
 445 stdcall -noname PathFileExistsAndAttributesA(str ptr)
 446 stdcall -noname PathFileExistsAndAttributesW(wstr ptr)
 447 stub -noname FixSlashesAndColonA
 454 stub -noname CharLowerNoDBCSW
 455 stdcall -noname PathIsValidCharA(long long)
 456 stdcall -noname PathIsValidCharW(long long)
-457 stdcall @(wstr ptr long) kernel32.GetLongPathNameW
-458 stdcall @(str ptr long) kernel32.GetLongPathNameA
+457 stdcall -noname GetLongPathNameWrapW(wstr ptr long) kernel32.GetLongPathNameW
+458 stdcall -noname GetLongPathNameWrapA(str ptr long) kernel32.GetLongPathNameA
 459 stdcall -noname SHExpandEnvironmentStringsA(str ptr long) kernel32.ExpandEnvironmentStringsA
 460 stdcall -noname SHExpandEnvironmentStringsW(wstr ptr long) kernel32.ExpandEnvironmentStringsW
 461 stdcall -noname SHGetAppCompatFlags(long)
 469 stub -noname RunRegCommand
 470 stub -noname IUnknown_ProfferServiceOld
 471 stub -noname SHCreatePropertyBagOnRegKey
-472 stub -noname SHCreatePropertyBagOnProfileSelections
+472 stub -noname SHCreatePropertyBagOnProfileSelection
 473 stub -noname SHGetIniStringUTF7W
 474 stub -noname SHSetIniStringUTF7W
 475 stdcall -noname GetShellSecurityDescriptor(ptr long)
 484 stdcall -noname IUnknown_QueryServiceExec(ptr ptr ptr long long long ptr)
 485 stub -noname MapWin32ErrorToSTG
 486 stub -noname ModeToCreateFileFlags
-
+487 stdcall -noname SHLoadIndirectString(wstr ptr long ptr)
 488 stub -noname SHConvertGraphicsFile
-489 stub -noname GlobalAddAtomWrapW
-490 stub -noname GlobalFindAtomWrapW
+489 stdcall -noname GlobalAddAtomWrapW(wstr) kernel32.GlobalAddAtomW
+490 stdcall -noname GlobalFindAtomWrapW(wstr) kernel32.GlobalFindAtomW
 491 stdcall -noname SHGetShellKey(long long long)
 492 stub -noname PrettifyFileDescriptionW
 493 stub -noname SHPropertyBag_ReadType
 512 stub -noname IStream_ReadPidl
 513 stub -noname IStream_WritePidl
 514 stdcall -noname IUnknown_ProfferService(ptr ptr ptr ptr)
-
+515 stub -noname SHGetViewStatePropertyBag
 516 stdcall -noname SKGetValueW(long wstr wstr long long long)
 517 stub -noname SKSetValueW
 518 stub -noname SKDeleteValueW
 540 stub -noname SHInvokeCommandOnContextMenu
 541 stub -noname SHInvokeCommandsOnContextMen
 542 stdcall -noname GetUIVersion()
-543 stub -noname CreateColorSpaceWrapW
+543 stdcall -noname CreateColorSpaceWrapW(ptr) gdi32.CreateColorSpaceW
 544 stub -noname QuerySourceCreateFromKey
 545 stub -noname SHForwardContextMenuMsg
 546 stub -noname IUnknown_DoContextMenuPopup
 @ stdcall SHGetValueA ( long str str ptr ptr ptr )
 @ stdcall SHGetValueW ( long wstr wstr ptr ptr ptr )
 @ stdcall SHIsLowMemoryMachine(long)
-@ stdcall SHLoadIndirectString(wstr ptr long ptr)
 @ stdcall SHOpenRegStream2A(long str str long)
 @ stdcall SHOpenRegStream2W(long wstr str long)
 @ stdcall SHOpenRegStreamA(long str str long)
index 3a9bbbe..9b5c062 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Korean resources for shlwapi
  *
- * Copyright 2005 YunSong Hwang
+ * Copyright 2005,2007 YunSong Hwang
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -28,10 +28,10 @@ FONT 8, "MS Shell Dlg"
  LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20
  LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8
  CHECKBOX "ÀÌ ¸Þ¼¼Áö¸¦ ´Ù½Ã´Â º¸¿©ÁÖÁö ¸¶½Ã¿À(&I)", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
- PUSHBUTTON L"È®ÀÎ(&O)" IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
- PUSHBUTTON L"Ãë¼Ò(&C)" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
- PUSHBUTTON L"¿¹(&Y)" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
- PUSHBUTTON L"¾Æ´Ï¿À(&N)" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "È®ÀÎ(&O)" IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Ãë¼Ò(&C)" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "¿¹(&Y)" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "¾Æ´Ï¿À(&N)" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
 }
 
 
index 92914a4..839fa13 100644 (file)
@@ -44,7 +44,7 @@ FONT 8, "MS Shell Dlg"
 {
  LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20
  LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8
- CHECKBOX "Não &mostre esta mensagem novamente", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+ CHECKBOX "Não &mostrar esta mensagem novamente", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
  PUSHBUTTON L"&OK" IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
  PUSHBUTTON L"&Cancelar" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
  PUSHBUTTON L"&Sim" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
@@ -61,3 +61,13 @@ STRINGTABLE DISCARDABLE
     IDS_TIME_INTERVAL_MINUTES  " min"
     IDS_TIME_INTERVAL_SECONDS  " sec"
 }
+
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_BYTES_FORMAT    "%ld bytes"
+    IDS_TIME_INTERVAL_HOURS    " hr"
+    IDS_TIME_INTERVAL_MINUTES  " min"
+    IDS_TIME_INTERVAL_SECONDS  " seg"
+}
index 40953a7..885d7bb 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Swedish resources for shlwapi
  *
- * Copyright 2005 Andreas Bjerkeholt
+ * Copyright 2007 Daniel Nylander
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
+LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
 
 IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60
 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
@@ -27,7 +27,7 @@ FONT 8, "MS Shell Dlg"
 {
  LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20
  LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8
- CHECKBOX "&Visa inte detta meddelande igen", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+ CHECKBOX "Visa inte &det här meddelandet igen", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
  PUSHBUTTON L"&OK" IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
  PUSHBUTTON L"&Avbryt" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
  PUSHBUTTON L"&Ja" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
@@ -36,8 +36,8 @@ FONT 8, "MS Shell Dlg"
 
 STRINGTABLE DISCARDABLE
 {
-    IDS_BYTES_FORMAT    "%ld bytes"
-    IDS_TIME_INTERVAL_HOURS    " hr"
+    IDS_BYTES_FORMAT    "%ld byte"
+    IDS_TIME_INTERVAL_HOURS    " h"
     IDS_TIME_INTERVAL_MINUTES  " min"
-    IDS_TIME_INTERVAL_SECONDS  " sec"
+    IDS_TIME_INTERVAL_SECONDS  " s"
 }
index 779ba32..4784638 100644 (file)
@@ -2,13 +2,13 @@ Index: shlwapi.rc
 ===================================================================
 --- shlwapi.rc (revision 25691)
 +++ shlwapi.rc (revision 25692)
-@@ -39,4 +39,7 @@
+@@ -39,5 +39,7 @@
  #include "shlwapi_No.rc"
  #include "shlwapi_Pl.rc"
  #include "shlwapi_Pt.rc"
 +#include "shlwapi_Ru.rc"
+ #include "shlwapi_Sv.rc"
  #include "shlwapi_Tr.rc"
-+#include "shlwapi_Sv.rc"
 +#include "shlwapi_Uk.rc"
 Index: shlwapi_Ru.rc
 ===================================================================
@@ -63,61 +63,6 @@ Property shlwapi_Ru.rc
 ___________________________________________________________________
 Name: svn:eol-style
    + native
-
-Index: shlwapi_Sv.rc
-===================================================================
---- shlwapi_Sv.rc      (revision 25692)
-+++ shlwapi_Sv.rc      (working copy)
-@@ -0,0 +1,43 @@
-+/*
-+ * Swedish resources for shlwapi
-+ *
-+ * Copyright 2005 Andreas Bjerkeholt
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-+ */
-+
-+LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
-+
-+IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60
-+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-+CAPTION "Fel!"
-+FONT 8, "MS Shell Dlg"
-+{
-+ LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20
-+ LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8
-+ CHECKBOX "&Visa inte detta meddelande igen", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
-+ PUSHBUTTON L"&OK" IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
-+ PUSHBUTTON L"&Avbryt" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
-+ PUSHBUTTON L"&Ja" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
-+ PUSHBUTTON L"&Nej" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
-+}
-+
-+STRINGTABLE DISCARDABLE
-+{
-+    IDS_BYTES_FORMAT    "%ld bytes"
-+    IDS_TIME_INTERVAL_HOURS    " hr"
-+    IDS_TIME_INTERVAL_MINUTES  " min"
-+    IDS_TIME_INTERVAL_SECONDS  " sec"
-+}
-
-Property shlwapi_Sv.rc
-___________________________________________________________________
-Name: svn:eol-style
-   + native
-
 Index: shlwapi_Uk.rc
 ===================================================================
 --- shlwapi_Uk.rc      (revision 25692)
index 34204da..b2cd7f2 100644 (file)
@@ -66,8 +66,8 @@ static void FillNumberFmt(NUMBERFMTW *fmt, LPWSTR decimal_buffer, int decimal_bu
   fmt->lpThousandSep = thousand_buffer;
   fmt->lpDecimalSep = decimal_buffer;
 
-  /*
-   * Converting grouping string to number as described on
+  /* 
+   * Converting grouping string to number as described on 
    * http://blogs.msdn.com/oldnewthing/archive/2006/04/18/578251.aspx
    */
   fmt->Grouping = 0;
@@ -113,7 +113,7 @@ static int FormatInt(LONGLONG qdwValue, LPWSTR pszBuf, int cchBuf)
   } while (qdwValue > 0);
   if (neg)
     *(--c) = '-';
-
+  
   return GetNumberFormatW(LOCALE_USER_DEFAULT, 0, c, &fmt, pszBuf, cchBuf);
 }
 
@@ -132,7 +132,7 @@ static int FormatDouble(double value, int decimals, LPWSTR pszBuf, int cchBuf)
   WCHAR buf[64];
   NUMBERFMTW fmt;
   WCHAR decimal[8], thousand[8];
-
+  
   snprintfW(buf, 64, flfmt, value);
 
   FillNumberFmt(&fmt, decimal, sizeof decimal / sizeof (WCHAR),
@@ -1558,7 +1558,7 @@ HRESULT WINAPI StrRetToBSTR(STRRET *lpStrRet, LPCITEMIDLIST pidl, BSTR* pBstrOut
 LPSTR WINAPI StrFormatKBSizeA(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
 {
   WCHAR wszBuf[256];
-
+  
   if (!StrFormatKBSizeW(llBytes, wszBuf, 256))
     return NULL;
   if (!WideCharToMultiByte(CP_ACP, 0, wszBuf, -1, lpszDest, cchMax, NULL, NULL))
@@ -2699,7 +2699,7 @@ HRESULT WINAPI SHLoadIndirectString(LPCWSTR src, LPWSTR dst, UINT dst_len, void
         *index_str = 0;
         index_str++;
         index = atoiW(index_str);
-
+  
         hmod = LoadLibraryW(dllname);
         if(!hmod) goto end;
 
index 1affb79..9aa56b5 100644 (file)
@@ -43,7 +43,7 @@ extern DWORD SHLWAPI_ThreadRef_index;  /* Initialised in shlwapi_main.c */
 INT WINAPI SHStringFromGUIDA(REFGUID,LPSTR,INT);
 
 /**************************************************************************
- *      _CreateAllAccessSecurityAttributes       [SHLWAPI.356]
+ *      CreateAllAccessSecurityAttributes       [SHLWAPI.356]
  *
  * Initialise security attributes from a security descriptor.
  *
@@ -60,7 +60,7 @@ INT WINAPI SHStringFromGUIDA(REFGUID,LPSTR,INT);
  *  Wine is impersonating does not use security descriptors (i.e. anything
  *  before Windows NT).
  */
-LPSECURITY_ATTRIBUTES WINAPI _CreateAllAccessSecurityAttributes(
+LPSECURITY_ATTRIBUTES WINAPI CreateAllAccessSecurityAttributes(
        LPSECURITY_ATTRIBUTES lpAttr,
        PSECURITY_DESCRIPTOR lpSec,
         DWORD p3)
@@ -184,7 +184,7 @@ HRESULT WINAPI SHSetThreadRef(IUnknown *lpUnknown)
  *   Success: S_OK. The threads object reference is released.
  *   Failure: An HRESULT error code.
  */
-HRESULT WINAPI SHReleaseThreadRef()
+HRESULT WINAPI SHReleaseThreadRef(void)
 {
   FIXME("() - stub!\n");
   return S_OK;
@@ -327,7 +327,7 @@ BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc, VOID *pData,
 }
 
 /*************************************************************************
- *      _SHGlobalCounterGetValue       [SHLWAPI.223]
+ *      SHGlobalCounterGetValue        [SHLWAPI.223]
  *
  * Get the current count of a semaphore.
  *
@@ -337,7 +337,7 @@ BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc, VOID *pData,
  * RETURNS
  *  The current count of the semaphore.
  */
-LONG WINAPI _SHGlobalCounterGetValue(HANDLE hSem)
+LONG WINAPI SHGlobalCounterGetValue(HANDLE hSem)
 {
   LONG dwOldCount = 0;
 
@@ -348,7 +348,7 @@ LONG WINAPI _SHGlobalCounterGetValue(HANDLE hSem)
 }
 
 /*************************************************************************
- *      _SHGlobalCounterIncrement      [SHLWAPI.224]
+ *      SHGlobalCounterIncrement       [SHLWAPI.224]
  *
  * Claim a semaphore.
  *
@@ -358,7 +358,7 @@ LONG WINAPI _SHGlobalCounterGetValue(HANDLE hSem)
  * RETURNS
  *  The new count of the semaphore.
  */
-LONG WINAPI _SHGlobalCounterIncrement(HANDLE hSem)
+LONG WINAPI SHGlobalCounterIncrement(HANDLE hSem)
 {
   LONG dwOldCount = 0;
 
@@ -368,7 +368,7 @@ LONG WINAPI _SHGlobalCounterIncrement(HANDLE hSem)
 }
 
 /*************************************************************************
- *      _SHGlobalCounterDecrement      [SHLWAPI.424]
+ *      SHGlobalCounterDecrement       [SHLWAPI.424]
  *
  * Release a semaphore.
  *
@@ -378,23 +378,23 @@ LONG WINAPI _SHGlobalCounterIncrement(HANDLE hSem)
  * RETURNS
  *  The new count of the semaphore.
  */
-DWORD WINAPI _SHGlobalCounterDecrement(HANDLE hSem)
+DWORD WINAPI SHGlobalCounterDecrement(HANDLE hSem)
 {
   DWORD dwOldCount = 0;
 
   TRACE("(%p)\n", hSem);
 
-  dwOldCount = _SHGlobalCounterGetValue(hSem);
+  dwOldCount = SHGlobalCounterGetValue(hSem);
   WaitForSingleObject(hSem, 0);
   return dwOldCount - 1;
 }
 
 /*************************************************************************
- *      _SHGlobalCounterCreateNamedW   [SHLWAPI.423]
+ *      SHGlobalCounterCreateNamedW    [SHLWAPI.423]
  *
- * Unicode version of _SHGlobalCounterCreateNamedA.
+ * Unicode version of SHGlobalCounterCreateNamedA.
  */
-HANDLE WINAPI _SHGlobalCounterCreateNamedW(LPCWSTR lpszName, DWORD iInitial)
+HANDLE WINAPI SHGlobalCounterCreateNamedW(LPCWSTR lpszName, DWORD iInitial)
 {
   static const WCHAR szPrefix[] = { 's', 'h', 'e', 'l', 'l', '.', '\0' };
   const int iPrefixLen = 6;
@@ -412,7 +412,7 @@ HANDLE WINAPI _SHGlobalCounterCreateNamedW(LPCWSTR lpszName, DWORD iInitial)
     StrCpyNW(szBuff + iPrefixLen, lpszName, iBuffLen - iPrefixLen);
 
   /* Initialise security attributes */
-  pSecAttr = _CreateAllAccessSecurityAttributes(&sAttr, &sd, 0);
+  pSecAttr = CreateAllAccessSecurityAttributes(&sAttr, &sd, 0);
 
   if (!(hRet = CreateSemaphoreW(pSecAttr , iInitial, MAXLONG, szBuff)))
     hRet = OpenSemaphoreW(SYNCHRONIZE|SEMAPHORE_MODIFY_STATE, 0, szBuff);
@@ -420,7 +420,7 @@ HANDLE WINAPI _SHGlobalCounterCreateNamedW(LPCWSTR lpszName, DWORD iInitial)
 }
 
 /*************************************************************************
- *      _SHGlobalCounterCreateNamedA   [SHLWAPI.422]
+ *      SHGlobalCounterCreateNamedA    [SHLWAPI.422]
  *
  * Create a semaphore.
  *
@@ -431,7 +431,7 @@ HANDLE WINAPI _SHGlobalCounterCreateNamedW(LPCWSTR lpszName, DWORD iInitial)
  * RETURNS
  *  A new semaphore handle.
  */
-HANDLE WINAPI _SHGlobalCounterCreateNamedA(LPCSTR lpszName, DWORD iInitial)
+HANDLE WINAPI SHGlobalCounterCreateNamedA(LPCSTR lpszName, DWORD iInitial)
 {
   WCHAR szBuff[MAX_PATH];
 
@@ -439,11 +439,11 @@ HANDLE WINAPI _SHGlobalCounterCreateNamedA(LPCSTR lpszName, DWORD iInitial)
 
   if (lpszName)
     MultiByteToWideChar(0, 0, lpszName, -1, szBuff, MAX_PATH);
-  return _SHGlobalCounterCreateNamedW(lpszName ? szBuff : NULL, iInitial);
+  return SHGlobalCounterCreateNamedW(lpszName ? szBuff : NULL, iInitial);
 }
 
 /*************************************************************************
- *      _SHGlobalCounterCreate [SHLWAPI.222]
+ *      SHGlobalCounterCreate  [SHLWAPI.222]
  *
  * Create a semaphore using the name of a GUID.
  *
@@ -456,7 +456,7 @@ HANDLE WINAPI _SHGlobalCounterCreateNamedA(LPCSTR lpszName, DWORD iInitial)
  * NOTES
  *  The initial count of the semaphore is set to 0.
  */
-HANDLE WINAPI _SHGlobalCounterCreate (REFGUID guid)
+HANDLE WINAPI SHGlobalCounterCreate (REFGUID guid)
 {
   char szName[40];
 
@@ -464,5 +464,5 @@ HANDLE WINAPI _SHGlobalCounterCreate (REFGUID guid)
 
   /* Create a named semaphore using the GUID string */
   SHStringFromGUIDA(guid, szName, sizeof(szName) - 1);
-  return _SHGlobalCounterCreateNamedA(szName, 0);
+  return SHGlobalCounterCreateNamedA(szName, 0);
 }
index f2542b9..d1f64fe 100644 (file)
@@ -268,11 +268,11 @@ HRESULT WINAPI UrlCanonicalizeA(LPCSTR pszUrl, LPSTR pszCanonicalized,
        LPDWORD pcchCanonicalized, DWORD dwFlags)
 {
     LPWSTR base, canonical;
-    DWORD ret, len, len2;
+    HRESULT ret;
+    DWORD   len, len2;
 
-    TRACE("(%s %p %p 0x%08x) using W version\n",
-         debugstr_a(pszUrl), pszCanonicalized,
-         pcchCanonicalized, dwFlags);
+    TRACE("(%s, %p, %p, 0x%08x) *pcchCanonicalized: %d\n", debugstr_a(pszUrl), pszCanonicalized,
+        pcchCanonicalized, dwFlags, pcchCanonicalized ? *pcchCanonicalized : -1);
 
     if(!pszUrl || !pszCanonicalized || !pcchCanonicalized)
        return E_INVALIDARG;
@@ -286,19 +286,19 @@ HRESULT WINAPI UrlCanonicalizeA(LPCSTR pszUrl, LPSTR pszCanonicalized,
 
     ret = UrlCanonicalizeW(base, canonical, &len, dwFlags);
     if (ret != S_OK) {
-       HeapFree(GetProcessHeap(), 0, base);
-       return ret;
+        *pcchCanonicalized = len * 2;
+        HeapFree(GetProcessHeap(), 0, base);
+        return ret;
     }
 
-    len2 = WideCharToMultiByte(0, 0, canonical, len, 0, 0, 0, 0);
+    len2 = WideCharToMultiByte(0, 0, canonical, -1, 0, 0, 0, 0);
     if (len2 > *pcchCanonicalized) {
-       *pcchCanonicalized = len;
-       HeapFree(GetProcessHeap(), 0, base);
-       return E_POINTER;
+        *pcchCanonicalized = len2;
+        HeapFree(GetProcessHeap(), 0, base);
+        return E_POINTER;
     }
-    WideCharToMultiByte(0, 0, canonical, len+1, pszCanonicalized,
-                       *pcchCanonicalized, 0, 0);
-    *pcchCanonicalized = len2;
+    WideCharToMultiByte(0, 0, canonical, -1, pszCanonicalized, *pcchCanonicalized, 0, 0);
+    *pcchCanonicalized = len;
     HeapFree(GetProcessHeap(), 0, base);
     return S_OK;
 }
@@ -320,8 +320,8 @@ HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized,
 
     static const WCHAR wszFile[] = {'f','i','l','e',':'};
 
-    TRACE("(%s %p %p 0x%08x)\n", debugstr_w(pszUrl), pszCanonicalized,
-         pcchCanonicalized, dwFlags);
+    TRACE("(%s, %p, %p, 0x%08x) *pcchCanonicalized: %d\n", debugstr_w(pszUrl), pszCanonicalized,
+        pcchCanonicalized, dwFlags, pcchCanonicalized ? *pcchCanonicalized : -1);
 
     if(!pszUrl || !pszCanonicalized || !pcchCanonicalized)
        return E_INVALIDARG;
@@ -332,7 +332,8 @@ HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized,
     }
 
     nByteLen = (lstrlenW(pszUrl) + 1) * sizeof(WCHAR); /* length in bytes */
-    lpszUrlCpy = HeapAlloc(GetProcessHeap(), 0, INTERNET_MAX_URL_LENGTH);
+    lpszUrlCpy = HeapAlloc(GetProcessHeap(), 0,
+                           INTERNET_MAX_URL_LENGTH * sizeof(WCHAR));
 
     if((dwFlags & URL_FILE_USE_PATHURL) && nByteLen >= sizeof(wszFile)
             && !memcmp(wszFile, pszUrl, sizeof(wszFile)))
@@ -425,7 +426,7 @@ HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized,
                 state = 3;
                 break;
             }
-
             /* Now at root location, cannot back up any more. */
             /* "root" will point at the '/' */
 
@@ -735,8 +736,9 @@ HRESULT WINAPI UrlCombineW(LPCWSTR pszBase, LPCWSTR pszRelative,
                process_case = 4;
                break;
            }
-           /* case where scheme is followed by document path */
-           process_case = 5;
+            /* replace either just location if base's location starts with a
+             * slash or otherwise everything */
+            process_case = (*base.pszSuffix == '/') ? 5 : 1;
            break;
        }
         if ((*relative.pszSuffix == '/') && (*(relative.pszSuffix+1) == '/')) {
@@ -1044,7 +1046,7 @@ HRESULT WINAPI UrlEscapeW(
     for(src = pszUrl; *src; ) {
         WCHAR cur = *src;
         len = 0;
-
+        
         if((int_flags & WINE_URL_COLLAPSE_SLASHES) && src == pszUrl + parsed_url.cchProtocol + 1) {
             int localhost_len = sizeof(localhost)/sizeof(WCHAR) - 1;
             while(cur == '/' || cur == '\\') {
@@ -1443,7 +1445,7 @@ HRESULT WINAPI HashData(const unsigned char *lpSrc, DWORD nSrcLen,
  *  pszUrl   [I] Url to hash
  *  lpDest   [O] Destinationh for hash
  *  nDestLen [I] Length of lpDest
- *
+ * 
  * RETURNS
  *  Success: S_OK. lpDest is filled with the computed hash value.
  *  Failure: E_INVALIDARG, if any argument is invalid.
@@ -2178,7 +2180,7 @@ BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
 
 /*************************************************************************
  *      UrlCreateFromPathA     [SHLWAPI.@]
- *
+ * 
  * See UrlCreateFromPathW
  */
 HRESULT WINAPI UrlCreateFromPathA(LPCSTR pszPath, LPSTR pszUrl, LPDWORD pcchUrl, DWORD dwReserved)