Author: winesync Date: Thu Nov 29 14:15:59 2007 New Revision: 30887
URL: http://svn.reactos.org/svn/reactos?rev=30887&view=rev Log: Autosyncing with Wine HEAD
Modified: trunk/reactos/dll/win32/shlwapi/assoc.c trunk/reactos/dll/win32/shlwapi/clist.c trunk/reactos/dll/win32/shlwapi/istream.c trunk/reactos/dll/win32/shlwapi/ordinal.c trunk/reactos/dll/win32/shlwapi/path.c trunk/reactos/dll/win32/shlwapi/reg.c trunk/reactos/dll/win32/shlwapi/regstream.c trunk/reactos/dll/win32/shlwapi/shlwapi.rbuild trunk/reactos/dll/win32/shlwapi/shlwapi.rc trunk/reactos/dll/win32/shlwapi/shlwapi.spec trunk/reactos/dll/win32/shlwapi/shlwapi_Ko.rc trunk/reactos/dll/win32/shlwapi/shlwapi_Pt.rc trunk/reactos/dll/win32/shlwapi/shlwapi_Sv.rc trunk/reactos/dll/win32/shlwapi/shlwapi_ros.diff trunk/reactos/dll/win32/shlwapi/string.c trunk/reactos/dll/win32/shlwapi/thread.c trunk/reactos/dll/win32/shlwapi/url.c
Modified: trunk/reactos/dll/win32/shlwapi/assoc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/assoc.c?r... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/assoc.c (original) +++ trunk/reactos/dll/win32/shlwapi/assoc.c Thu Nov 29 14:15:59 2007 @@ -414,7 +414,7 @@
/************************************************************************** * AssocIsDangerous (SHLWAPI.@) - * + * * Determine if a file association is dangerous (potentially malware). * * PARAMS @@ -468,7 +468,7 @@ { IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface; ULONG refCount = InterlockedIncrement(&This->ref); - + TRACE("(%p)->(ref before=%u)\n",This, refCount - 1);
return refCount; @@ -491,7 +491,7 @@ TRACE("Destroying IQueryAssociations (%p)\n", This); HeapFree(GetProcessHeap(), 0, This); } - + return refCount; }
Modified: trunk/reactos/dll/win32/shlwapi/clist.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/clist.c?r... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/clist.c (original) +++ trunk/reactos/dll/win32/shlwapi/clist.c Thu Nov 29 14:15:59 2007 @@ -34,8 +34,6 @@ /* dwSignature for contained DATABLOCK_HEADER items */ #define CLIST_ID_CONTAINER (~0U)
-HRESULT WINAPI SHAddDataBlock(LPDBLIST*,const DATABLOCK_HEADER*); - /************************************************************************* * NextItem * @@ -46,6 +44,101 @@ char* address = (char*)lpList; address += lpList->cbSize; 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; }
/************************************************************************* @@ -247,101 +340,6 @@ }
/************************************************************************* - * @ [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] * * Remove an item from a DataBlock list. @@ -427,7 +425,7 @@ * 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);
Modified: trunk/reactos/dll/win32/shlwapi/istream.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/istream.c... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/istream.c (original) +++ trunk/reactos/dll/win32/shlwapi/istream.c Thu Nov 29 14:15:59 2007 @@ -82,7 +82,7 @@ { 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_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 @@ CloseHandle(This->hFile); HeapFree(GetProcessHeap(), 0, This); } - + return refCount; }
@@ -548,7 +548,7 @@ * 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 @@ 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 @@ * 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;
Modified: trunk/reactos/dll/win32/shlwapi/ordinal.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/ordinal.c... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/ordinal.c (original) +++ trunk/reactos/dll/win32/shlwapi/ordinal.c Thu Nov 29 14:15:59 2007 @@ -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 @@ 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 @@ * @ [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) -{ - HWND hWndItem = GetDlgItem(hWnd, iItem); - if (hWndItem) - return SetWindowTextW(hWndItem, lpszText); - return FALSE; +BOOL WINAPI GetStringType3ExW(LPWSTR src, INT count, LPWORD type) +{ + return GetStringTypeW(CT_CTYPE3, src, count, type); }
/************************************************************************* @@ -790,7 +753,7 @@ */ 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 StrCmpNCW(LPCWSTR lpszSrc, LPCWSTR lpszCmp, INT len) { - return strncmpW(lpszSrc, lpszCmp, len); + return StrCmpNW(lpszSrc, lpszCmp, len); }
/************************************************************************* @@ -819,7 +782,7 @@ */ 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 StrCmpNICW(LPCWSTR lpszSrc, LPCWSTR lpszCmp, DWORD len) { - return strncmpiW(lpszSrc, lpszCmp, len); + return StrCmpNIW(lpszSrc, lpszCmp, len); }
/************************************************************************* @@ -847,7 +810,7 @@ */ DWORD WINAPI StrCmpCA(LPCSTR lpszSrc, LPCSTR lpszCmp) { - return strcmp(lpszSrc, lpszCmp); + return lstrcmpA(lpszSrc, lpszCmp); }
/************************************************************************* @@ -857,7 +820,7 @@ */ DWORD WINAPI StrCmpCW(LPCWSTR lpszSrc, LPCWSTR lpszCmp) { - return strcmpW(lpszSrc, lpszCmp); + return lstrcmpW(lpszSrc, lpszCmp); }
/************************************************************************* @@ -875,7 +838,7 @@ */ DWORD WINAPI StrCmpICA(LPCSTR lpszSrc, LPCSTR lpszCmp) { - return strcasecmp(lpszSrc, lpszCmp); + return lstrcmpiA(lpszSrc, lpszCmp); }
/************************************************************************* @@ -885,7 +848,7 @@ */ DWORD WINAPI StrCmpICW(LPCWSTR lpszSrc, LPCWSTR lpszCmp) { - return strcmpiW(lpszSrc, lpszCmp); + return lstrcmpiW(lpszSrc, lpszCmp); }
/************************************************************************* @@ -1775,29 +1738,29 @@ /************************************************************************* * @ [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 @@ /************************************************************************* * @ [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 @@
if(mem) memset(mem, 0, block_size * init_blocks); - + info->num_items = 0; info->inc = inc; info->mem = mem; @@ -2837,22 +2800,69 @@ * * _SHPackDispParamsV */ -HRESULT WINAPI SHPackDispParamsV(LPVOID w, LPVOID x, LPVOID y, LPVOID z) -{ - FIXME("%p %p %p %p\n",w,x,y,z); - return E_FAIL; +HRESULT WINAPI SHPackDispParamsV(DISPPARAMS *params, VARIANTARG *args, UINT cnt, va_list valist) +{ + 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...). - */ -HRESULT WINAPI SHPackDispParams(LPVOID w, LPVOID x, LPVOID y, LPVOID z) -{ - FIXME("%p %p %p %p\n", w, x, y, z); - return E_FAIL; + * SHPackDispParams + */ +HRESULT WINAPIV SHPackDispParams(DISPPARAMS *params, VARIANTARG *args, UINT cnt, ...) +{ + 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 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 (SUCCEEDED(result)) - { - ULONG cnt; - VARIANTARG *curvar = buffer+cParams-1; - DISPPARAMS dispParams = {buffer, NULL, cParams, 0}; - va_list valist; - - 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); - - result = SHLWAPI_InvokeByIID(iCP, riid, dispId, &dispParams); - IConnectionPoint_Release(iCP); - } + if (FAILED(result)) + return result; + + result = IConnectionPointContainer_FindConnectionPoint(iCPC, riid, &iCP); + IConnectionPointContainer_Release(iCPC); + if(FAILED(result)) + return result; + + va_start(valist, cParams); + SHPackDispParamsV(&dispParams, buffer, cParams, valist); + va_end(valist); + + result = SHLWAPI_InvokeByIID(iCP, riid, dispId, &dispParams); + IConnectionPoint_Release(iCP);
return result; } @@ -3536,7 +3509,7 @@ /************************************************************************* * @ [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; @@ -3673,16 +3646,6 @@ BOOL WINAPI SHFlushSFCacheWrap(void) { FIXME(": stub\n"); 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); }
/************************************************************************* @@ -4195,7 +4158,7 @@ /*********************************************************************** * 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 @@ /*********************************************************************** * 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 - * - * RETURNS - * FIXME - */ -BOOL WINAPI ShellMessageBoxWrapW(HMODULE mod, DWORD unknown1, UINT uId, - LPCWSTR title, DWORD unknown2, LPCWSTR filename) -{ - FIXME("%p %x %d %s %x %s\n", - mod, unknown1, uId, debugstr_w(title), unknown2, debugstr_w(filename)); - return TRUE; + * See shell32.ShellMessageBoxW + * + * 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. + */ +INT WINAPIV ShellMessageBoxWrapW(HINSTANCE hInstance, HWND hWnd, LPCWSTR lpText, + LPCWSTR lpCaption, UINT uType, ...) +{ + 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 @@ 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 @@ 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 @@ 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;
Modified: trunk/reactos/dll/win32/shlwapi/path.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/path.c?re... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/path.c (original) +++ trunk/reactos/dll/win32/shlwapi/path.c Thu Nov 29 14:15:59 2007 @@ -3308,7 +3308,7 @@
while(*pszPath == '\') pszPath++; - + if(isalphaW(*pszPath) && pszPath[1] == '|' && pszPath[2] == '\') /* c|\ -> c:\ */ pszPath[1] = ':';
Modified: trunk/reactos/dll/win32/shlwapi/reg.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/reg.c?rev... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/reg.c (original) +++ trunk/reactos/dll/win32/shlwapi/reg.c Thu Nov 29 14:15:59 2007 @@ -210,7 +210,7 @@ * 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 @@ * 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 @@ } if (dwRet == ERROR_NO_MORE_ITEMS) dwRet = ERROR_SUCCESS; - + if (lpszName != szNameBuf) HeapFree(GetProcessHeap(), 0, lpszName); /* Free buffer if allocated */ }
Modified: trunk/reactos/dll/win32/shlwapi/regstream.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/regstream... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/regstream.c (original) +++ trunk/reactos/dll/win32/shlwapi/regstream.c Thu Nov 29 14:15:59 2007 @@ -78,7 +78,7 @@ { ISHRegStream *This = (ISHRegStream *)iface; ULONG refCount = InterlockedIncrement(&This->ref); - + TRACE("(%p)->(ref before=%u)\n",This, refCount - 1);
return refCount;
Modified: trunk/reactos/dll/win32/shlwapi/shlwapi.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi.r... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/shlwapi.rbuild (original) +++ trunk/reactos/dll/win32/shlwapi/shlwapi.rbuild Thu Nov 29 14:15:59 2007 @@ -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>
Modified: trunk/reactos/dll/win32/shlwapi/shlwapi.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi.r... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/shlwapi.rc (original) +++ trunk/reactos/dll/win32/shlwapi/shlwapi.rc Thu Nov 29 14:15:59 2007 @@ -40,6 +40,6 @@ #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"
Modified: trunk/reactos/dll/win32/shlwapi/shlwapi.spec URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi.s... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/shlwapi.spec (original) +++ trunk/reactos/dll/win32/shlwapi/shlwapi.spec Thu Nov 29 14:15:59 2007 @@ -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,121 +33,121 @@ 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,7 +156,7 @@ 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,7 +181,7 @@ 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,7 +209,7 @@ 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,9 +219,9 @@ 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,8 +278,8 @@ 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,28 +295,28 @@ 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,22 +329,22 @@ 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,20 +353,20 @@ 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,8 +374,8 @@ 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,13 +385,13 @@ 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,7 +401,7 @@ 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,19 +419,19 @@ 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,9 +439,9 @@ 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,8 +454,8 @@ 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,7 +469,7 @@ 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,10 +484,10 @@ 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 @@ -508,7 +508,7 @@ 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 @@ -536,7 +536,7 @@ 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 @@ -699,7 +699,6 @@ @ 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)
Modified: trunk/reactos/dll/win32/shlwapi/shlwapi_Ko.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi_K... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/shlwapi_Ko.rc (original) +++ trunk/reactos/dll/win32/shlwapi/shlwapi_Ko.rc Thu Nov 29 14:15:59 2007 @@ -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 @@ 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 }
Modified: trunk/reactos/dll/win32/shlwapi/shlwapi_Pt.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi_P... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/shlwapi_Pt.rc (original) +++ trunk/reactos/dll/win32/shlwapi/shlwapi_Pt.rc Thu Nov 29 14:15:59 2007 @@ -44,7 +44,7 @@ { 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 @@ 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" +}
Modified: trunk/reactos/dll/win32/shlwapi/shlwapi_Sv.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi_S... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/shlwapi_Sv.rc (original) +++ trunk/reactos/dll/win32/shlwapi/shlwapi_Sv.rc Thu Nov 29 14:15:59 2007 @@ -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 @@ -15,10 +15,10 @@ * * 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 @@ { 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 @@
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" }
Modified: trunk/reactos/dll/win32/shlwapi/shlwapi_ros.diff URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi_r... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/shlwapi_ros.diff (original) +++ trunk/reactos/dll/win32/shlwapi/shlwapi_ros.diff Thu Nov 29 14:15:59 2007 @@ -2,13 +2,13 @@ =================================================================== --- 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 @@ ___________________________________________________________________ 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)
Modified: trunk/reactos/dll/win32/shlwapi/string.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/string.c?... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/string.c (original) +++ trunk/reactos/dll/win32/shlwapi/string.c Thu Nov 29 14:15:59 2007 @@ -66,8 +66,8 @@ 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 @@ } while (qdwValue > 0); if (neg) *(--c) = '-'; - + return GetNumberFormatW(LOCALE_USER_DEFAULT, 0, c, &fmt, pszBuf, cchBuf); }
@@ -132,7 +132,7 @@ 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 @@ 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 @@ *index_str = 0; index_str++; index = atoiW(index_str); - + hmod = LoadLibraryW(dllname); if(!hmod) goto end;
Modified: trunk/reactos/dll/win32/shlwapi/thread.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/thread.c?... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/thread.c (original) +++ trunk/reactos/dll/win32/shlwapi/thread.c Thu Nov 29 14:15:59 2007 @@ -43,7 +43,7 @@ INT WINAPI SHStringFromGUIDA(REFGUID,LPSTR,INT);
/************************************************************************** - * _CreateAllAccessSecurityAttributes [SHLWAPI.356] + * CreateAllAccessSecurityAttributes [SHLWAPI.356] * * Initialise security attributes from a security descriptor. * @@ -60,7 +60,7 @@ * 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 @@ * 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 @@ }
/************************************************************************* - * _SHGlobalCounterGetValue [SHLWAPI.223] + * SHGlobalCounterGetValue [SHLWAPI.223] * * Get the current count of a semaphore. * @@ -337,7 +337,7 @@ * RETURNS * The current count of the semaphore. */ -LONG WINAPI _SHGlobalCounterGetValue(HANDLE hSem) +LONG WINAPI SHGlobalCounterGetValue(HANDLE hSem) { LONG dwOldCount = 0;
@@ -348,7 +348,7 @@ }
/************************************************************************* - * _SHGlobalCounterIncrement [SHLWAPI.224] + * SHGlobalCounterIncrement [SHLWAPI.224] * * Claim a semaphore. * @@ -358,7 +358,7 @@ * RETURNS * The new count of the semaphore. */ -LONG WINAPI _SHGlobalCounterIncrement(HANDLE hSem) +LONG WINAPI SHGlobalCounterIncrement(HANDLE hSem) { LONG dwOldCount = 0;
@@ -368,7 +368,7 @@ }
/************************************************************************* - * _SHGlobalCounterDecrement [SHLWAPI.424] + * SHGlobalCounterDecrement [SHLWAPI.424] * * Release a semaphore. * @@ -378,23 +378,23 @@ * 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] - * - * Unicode version of _SHGlobalCounterCreateNamedA. - */ -HANDLE WINAPI _SHGlobalCounterCreateNamedW(LPCWSTR lpszName, DWORD iInitial) + * SHGlobalCounterCreateNamedW [SHLWAPI.423] + * + * Unicode version of SHGlobalCounterCreateNamedA. + */ +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 @@ 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 @@ }
/************************************************************************* - * _SHGlobalCounterCreateNamedA [SHLWAPI.422] + * SHGlobalCounterCreateNamedA [SHLWAPI.422] * * Create a semaphore. * @@ -431,7 +431,7 @@ * 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 @@
if (lpszName) MultiByteToWideChar(0, 0, lpszName, -1, szBuff, MAX_PATH); - return _SHGlobalCounterCreateNamedW(lpszName ? szBuff : NULL, iInitial); -} - -/************************************************************************* - * _SHGlobalCounterCreate [SHLWAPI.222] + return SHGlobalCounterCreateNamedW(lpszName ? szBuff : NULL, iInitial); +} + +/************************************************************************* + * SHGlobalCounterCreate [SHLWAPI.222] * * Create a semaphore using the name of a GUID. * @@ -456,7 +456,7 @@ * 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 @@
/* Create a named semaphore using the GUID string */ SHStringFromGUIDA(guid, szName, sizeof(szName) - 1); - return _SHGlobalCounterCreateNamedA(szName, 0); -} + return SHGlobalCounterCreateNamedA(szName, 0); +}
Modified: trunk/reactos/dll/win32/shlwapi/url.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/url.c?rev... ============================================================================== --- trunk/reactos/dll/win32/shlwapi/url.c (original) +++ trunk/reactos/dll/win32/shlwapi/url.c Thu Nov 29 14:15:59 2007 @@ -268,11 +268,11 @@ LPDWORD pcchCanonicalized, DWORD dwFlags) { LPWSTR base, canonical; - DWORD ret, len, len2; - - TRACE("(%s %p %p 0x%08x) using W version\n", - debugstr_a(pszUrl), pszCanonicalized, - pcchCanonicalized, dwFlags); + HRESULT ret; + DWORD len, len2; + + 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 @@
ret = UrlCanonicalizeW(base, canonical, &len, dwFlags); if (ret != S_OK) { - HeapFree(GetProcessHeap(), 0, base); - return ret; - } - - len2 = WideCharToMultiByte(0, 0, canonical, len, 0, 0, 0, 0); + *pcchCanonicalized = len * 2; + HeapFree(GetProcessHeap(), 0, base); + return ret; + } + + len2 = WideCharToMultiByte(0, 0, canonical, -1, 0, 0, 0, 0); if (len2 > *pcchCanonicalized) { - *pcchCanonicalized = len; - HeapFree(GetProcessHeap(), 0, base); - return E_POINTER; - } - WideCharToMultiByte(0, 0, canonical, len+1, pszCanonicalized, - *pcchCanonicalized, 0, 0); - *pcchCanonicalized = len2; + *pcchCanonicalized = len2; + HeapFree(GetProcessHeap(), 0, base); + return E_POINTER; + } + WideCharToMultiByte(0, 0, canonical, -1, pszCanonicalized, *pcchCanonicalized, 0, 0); + *pcchCanonicalized = len; HeapFree(GetProcessHeap(), 0, base); return S_OK; } @@ -320,8 +320,8 @@
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 @@ }
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 @@ state = 3; break; } - + /* Now at root location, cannot back up any more. */ /* "root" will point at the '/' */
@@ -735,8 +736,9 @@ 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 @@ 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 @@ * 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 @@
/************************************************************************* * UrlCreateFromPathA [SHLWAPI.@] - * + * * See UrlCreateFromPathW */ HRESULT WINAPI UrlCreateFromPathA(LPCSTR pszPath, LPSTR pszUrl, LPDWORD pcchUrl, DWORD dwReserved)