Merge back commits from WineHQ

svn path=/trunk/; revision=7906
This commit is contained in:
Gé van Geldorp 2004-01-28 21:57:41 +00:00
parent eb51ca8257
commit b6b9cc70d8
10 changed files with 42 additions and 297 deletions

View file

@ -15,6 +15,9 @@
SHQueryInfoKeyA/W SHQueryInfoKeyA/W
SHEnumKeyExA/W SHEnumKeyExA/W
SHEnumValueA/W SHEnumValueA/W
Following functions are most likely documented wrong in MSDN (and in w32api), they
pop only 12 bytes from the stack on return:
MLLoadLibraryA/W
*/ */
#if __GNUC__ >=3 #if __GNUC__ >=3
@ -428,8 +431,8 @@ WINSHLWAPI int __cdecl wnsprintfW(LPWSTR,int,LPCWSTR,...);
WINSHLWAPI int WINAPI wvnsprintfA(LPSTR,int,LPCSTR,va_list); WINSHLWAPI int WINAPI wvnsprintfA(LPSTR,int,LPCSTR,va_list);
WINSHLWAPI int WINAPI wvnsprintfW(LPWSTR,int,LPCWSTR,va_list); WINSHLWAPI int WINAPI wvnsprintfW(LPWSTR,int,LPCWSTR,va_list);
HINSTANCE WINAPI MLLoadLibraryA(LPCSTR,HANDLE,DWORD,LPCSTR,BOOL); HINSTANCE WINAPI MLLoadLibraryA(LPCSTR,HMODULE,DWORD);
HINSTANCE WINAPI MLLoadLibraryW(LPCWSTR,HANDLE,DWORD,LPCWSTR,BOOL); HINSTANCE WINAPI MLLoadLibraryW(LPCWSTR,HMODULE,DWORD);
HRESULT WINAPI DllInstall(BOOL,LPCWSTR); HRESULT WINAPI DllInstall(BOOL,LPCWSTR);

View file

@ -5,7 +5,7 @@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
MODULE = shlwapi.dll MODULE = shlwapi.dll
IMPORTS = ole32 user32 gdi32 advapi32 kernel32 IMPORTS = ole32 user32 gdi32 advapi32 kernel32
EXTRALIBS = $(LIBUUID) $(LIBUNICODE) EXTRALIBS = -luuid $(LIBUNICODE)
C_SRCS = \ C_SRCS = \
assoc.c \ assoc.c \

View file

@ -160,7 +160,7 @@ static HRESULT WINAPI IStream_fnSeek(IStream *iface, LARGE_INTEGER dlibMove,
ICOM_THIS(ISHFileStream, iface); ICOM_THIS(ISHFileStream, iface);
DWORD dwPos; DWORD dwPos;
TRACE("(%p,%ld,%ld,%p)\n", This, dlibMove.s.LowPart, dwOrigin, pNewPos); TRACE("(%p,%ld,%ld,%p)\n", This, dlibMove.u.LowPart, dwOrigin, pNewPos);
IStream_fnCommit(iface, 0); /* If ever buffered, this will be needed */ IStream_fnCommit(iface, 0); /* If ever buffered, this will be needed */
dwPos = SetFilePointer(This->hFile, dlibMove.u.LowPart, NULL, dwOrigin); dwPos = SetFilePointer(This->hFile, dlibMove.u.LowPart, NULL, dwOrigin);
@ -180,7 +180,7 @@ static HRESULT WINAPI IStream_fnSetSize(IStream *iface, ULARGE_INTEGER libNewSiz
{ {
ICOM_THIS(ISHFileStream, iface); ICOM_THIS(ISHFileStream, iface);
TRACE("(%p,%ld)\n", This, libNewSize.s.LowPart); TRACE("(%p,%ld)\n", This, libNewSize.u.LowPart);
IStream_fnCommit(iface, 0); /* If ever buffered, this will be needed */ IStream_fnCommit(iface, 0); /* If ever buffered, this will be needed */
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -196,7 +196,7 @@ static HRESULT WINAPI IStream_fnCopyTo(IStream *iface, IStream* pstm, ULARGE_INT
ULONGLONG ulSize; ULONGLONG ulSize;
HRESULT hRet = S_OK; HRESULT hRet = S_OK;
TRACE("(%p,%p,%ld,%p,%p)\n", This, pstm, cb.s.LowPart, pcbRead, pcbWritten); TRACE("(%p,%p,%ld,%p,%p)\n", This, pstm, cb.u.LowPart, pcbRead, pcbWritten);
if (pcbRead) if (pcbRead)
pcbRead->QuadPart = 0; pcbRead->QuadPart = 0;
@ -265,7 +265,7 @@ static HRESULT WINAPI IStream_fnLockUnlockRegion(IStream *iface, ULARGE_INTEGER
ULARGE_INTEGER cb, DWORD dwLockType) ULARGE_INTEGER cb, DWORD dwLockType)
{ {
ICOM_THIS(ISHFileStream, iface); ICOM_THIS(ISHFileStream, iface);
TRACE("(%p,%ld,%ld,%ld)\n", This, libOffset.s.LowPart, cb.s.LowPart, dwLockType); TRACE("(%p,%ld,%ld,%ld)\n", This, libOffset.u.LowPart, cb.u.LowPart, dwLockType);
return E_NOTIMPL; return E_NOTIMPL;
} }

View file

@ -1057,7 +1057,7 @@ BOOL WINAPI SHAboutInfoA(LPSTR lpszDest, DWORD dwDestLen)
{ {
WCHAR buff[2084]; WCHAR buff[2084];
TRACE("(%p,%ld)", lpszDest, dwDestLen); TRACE("(%p,%ld)\n", lpszDest, dwDestLen);
if (lpszDest && SHAboutInfoW(buff, dwDestLen)) if (lpszDest && SHAboutInfoW(buff, dwDestLen))
{ {
@ -1103,7 +1103,7 @@ BOOL WINAPI SHAboutInfoW(LPWSTR lpszDest, DWORD dwDestLen)
HKEY hReg; HKEY hReg;
DWORD dwType, dwLen; DWORD dwType, dwLen;
TRACE("(%p,%ld)", lpszDest, dwDestLen); TRACE("(%p,%ld)\n", lpszDest, dwDestLen);
if (!lpszDest) if (!lpszDest)
return FALSE; return FALSE;
@ -3414,7 +3414,7 @@ LANGID WINAPI MLGetUILanguage()
* Success: A handle to the loaded module * Success: A handle to the loaded module
* Failure: A NULL handle. * Failure: A NULL handle.
*/ */
HMODULE WINAPI MLLoadLibraryA(LPCSTR new_mod, HANDLE inst_hwnd, DWORD dwFlags, LPCSTR component, BOOL cross_code_page) HMODULE WINAPI MLLoadLibraryA(LPCSTR new_mod, HMODULE inst_hwnd, DWORD dwFlags)
{ {
/* FIXME: Native appears to do DPA_Create and a DPA_InsertPtr for /* FIXME: Native appears to do DPA_Create and a DPA_InsertPtr for
* each call here. * each call here.
@ -3453,7 +3453,7 @@ HMODULE WINAPI MLLoadLibraryA(LPCSTR new_mod, HANDLE inst_hwnd, DWORD dwFlags, L
* *
* Unicode version of MLLoadLibraryA. * Unicode version of MLLoadLibraryA.
*/ */
HMODULE WINAPI MLLoadLibraryW(LPCWSTR new_mod, HANDLE inst_hwnd, DWORD dwFlags, LPCWSTR component, BOOL cross_code_page) HMODULE WINAPI MLLoadLibraryW(LPCWSTR new_mod, HMODULE inst_hwnd, DWORD dwFlags)
{ {
WCHAR mod_path[2*MAX_PATH]; WCHAR mod_path[2*MAX_PATH];
LPWSTR ptr; LPWSTR ptr;

View file

@ -2113,7 +2113,7 @@ DWORD WINAPI SHCopyKeyW(HKEY hKeyDst, LPCWSTR lpszSubKey, HKEY hKeySrc, DWORD dw
*/ */
int WINAPI SHRegGetIntW(HKEY hKey, LPCWSTR lpszValue, int iDefault) int WINAPI SHRegGetIntW(HKEY hKey, LPCWSTR lpszValue, int iDefault)
{ {
TRACE("(%p,%s,%d)", hKey, debugstr_w(lpszValue), iDefault); TRACE("(%p,%s,%d)\n", hKey, debugstr_w(lpszValue), iDefault);
if (hKey) if (hKey)
{ {

View file

@ -374,8 +374,8 @@
374 stub -noname SHCheckDiskForMediaA 374 stub -noname SHCheckDiskForMediaA
375 stub -noname SHCheckDiskForMediaW 375 stub -noname SHCheckDiskForMediaW
376 stdcall -noname MLGetUILanguage() # kernel32.GetUserDefaultUILanguage 376 stdcall -noname MLGetUILanguage() # kernel32.GetUserDefaultUILanguage
377 stdcall MLLoadLibraryA(str long long long long) 377 stdcall MLLoadLibraryA(str long long)
378 stdcall MLLoadLibraryW(wstr long long long long) 378 stdcall MLLoadLibraryW(wstr long long)
379 stub -noname Shell_GetCachedImageIndexWrapW 379 stub -noname Shell_GetCachedImageIndexWrapW
380 stub -noname Shell_GetCachedImageIndexWrapA 380 stub -noname Shell_GetCachedImageIndexWrapA
381 stub -noname AssocCopyVerbs 381 stub -noname AssocCopyVerbs

View file

@ -1350,7 +1350,7 @@ HRESULT WINAPI StrRetToBufA (LPSTRRET src, const ITEMIDLIST *pidl, LPSTR dest, U
* It was duplicated because not every version of Shlwapi.dll exports * It was duplicated because not every version of Shlwapi.dll exports
* StrRetToBufA. If you change one routine, change them both. * StrRetToBufA. If you change one routine, change them both.
*/ */
TRACE("dest=%p len=0x%lx strret=%p pidl=%p stub\n",dest,len,src,pidl); TRACE("dest=%p len=0x%x strret=%p pidl=%p stub\n",dest,len,src,pidl);
if (!src) if (!src)
{ {
@ -1394,7 +1394,7 @@ HRESULT WINAPI StrRetToBufA (LPSTRRET src, const ITEMIDLIST *pidl, LPSTR dest, U
*/ */
HRESULT WINAPI StrRetToBufW (LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len) HRESULT WINAPI StrRetToBufW (LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
{ {
TRACE("dest=%p len=0x%lx strret=%p pidl=%p stub\n",dest,len,src,pidl); TRACE("dest=%p len=0x%x strret=%p pidl=%p stub\n",dest,len,src,pidl);
if (!src) if (!src)
{ {

View file

@ -213,7 +213,7 @@ static DWORD WINAPI SHLWAPI_ThreadWrapper(PVOID pTi)
HRESULT hCom = E_FAIL; HRESULT hCom = E_FAIL;
DWORD dwRet; DWORD dwRet;
TRACE("(%p)", pTi); TRACE("(%p)\n", pTi);
/* We are now executing in the context of the newly created thread. /* We are now executing in the context of the newly created thread.
* So we copy the data passed to us (it is on the stack of the function * So we copy the data passed to us (it is on the stack of the function

View file

@ -34,9 +34,9 @@
#include "shlwapi.h" #include "shlwapi.h"
#include "wine/debug.h" #include "wine/debug.h"
HINSTANCE WINAPI MLLoadLibraryW(LPCWSTR,HANDLE,DWORD,LPCWSTR,BOOL); HMODULE WINAPI MLLoadLibraryW(LPCWSTR,HMODULE,DWORD);
BOOL WINAPI MLFreeLibrary(HMODULE); BOOL WINAPI MLFreeLibrary(HMODULE);
HRESULT WINAPI MLBuildResURLW(LPCWSTR,HMODULE,DWORD,LPCWSTR,LPWSTR,DWORD); HRESULT WINAPI MLBuildResURLW(LPCWSTR,HMODULE,DWORD,LPCWSTR,LPWSTR,DWORD);
WINE_DEFAULT_DEBUG_CHANNEL(shell); WINE_DEFAULT_DEBUG_CHANNEL(shell);
@ -1145,7 +1145,7 @@ HRESULT WINAPI UrlUnescapeA(
pcchUnescaped, dwFlags); pcchUnescaped, dwFlags);
if(dwFlags & URL_UNESCAPE_INPLACE) if(dwFlags & URL_UNESCAPE_INPLACE)
dst = (char*)pszUrl; dst = pszUrl;
else else
dst = pszUnescaped; dst = pszUnescaped;
@ -1209,7 +1209,7 @@ HRESULT WINAPI UrlUnescapeW(
pcchUnescaped, dwFlags); pcchUnescaped, dwFlags);
if(dwFlags & URL_UNESCAPE_INPLACE) if(dwFlags & URL_UNESCAPE_INPLACE)
dst = (WCHAR*)pszUrl; dst = pszUrl;
else else
dst = pszUnescaped; dst = pszUnescaped;
@ -1456,7 +1456,7 @@ HRESULT WINAPI UrlHashW(LPCWSTR pszUrl, unsigned char *lpDest, DWORD nDestLen)
{ {
char szUrl[MAX_PATH]; char szUrl[MAX_PATH];
TRACE("(%s,%p,%d)\n",debugstr_w(pszUrl), lpDest, nDestLen); TRACE("(%s,%p,%ld)\n",debugstr_w(pszUrl), lpDest, nDestLen);
if (IsBadStringPtrW(pszUrl, -1) || IsBadWritePtr(lpDest, nDestLen)) if (IsBadStringPtrW(pszUrl, -1) || IsBadWritePtr(lpDest, nDestLen))
return E_INVALIDARG; return E_INVALIDARG;
@ -2433,7 +2433,7 @@ HRESULT WINAPI MLBuildResURLW(LPCWSTR lpszLibName, HMODULE hMod, DWORD dwFlags,
dwDestLen -= (szResLen + 1); dwDestLen -= (szResLen + 1);
memcpy(lpszDest, szRes, sizeof(szRes)); memcpy(lpszDest, szRes, sizeof(szRes));
hMod = MLLoadLibraryW(lpszLibName, hMod, dwFlags, NULL, FALSE); hMod = MLLoadLibraryW(lpszLibName, hMod, dwFlags);
if (hMod) if (hMod)
{ {

View file

@ -1,69 +1,10 @@
Index: istream.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/istream.c,v
retrieving revision 1.9
diff -u -r1.9 istream.c
--- istream.c 24 Sep 2003 05:14:39 -0000 1.9
+++ istream.c 22 Jan 2004 23:34:22 -0000
@@ -163,12 +163,12 @@
TRACE("(%p,%ld,%ld,%p)\n", This, dlibMove.s.LowPart, dwOrigin, pNewPos);
IStream_fnCommit(iface, 0); /* If ever buffered, this will be needed */
- dwPos = SetFilePointer(This->hFile, dlibMove.s.LowPart, NULL, dwOrigin);
+ dwPos = SetFilePointer(This->hFile, dlibMove.u.LowPart, NULL, dwOrigin);
if (pNewPos)
{
- pNewPos->s.HighPart = 0;
- pNewPos->s.LowPart = dwPos;
+ pNewPos->u.HighPart = 0;
+ pNewPos->u.LowPart = dwPos;
}
return S_OK;
}
@@ -293,8 +293,8 @@
else
lpStat->pwcsName = StrDupW(This->lpszPath);
lpStat->type = This->type;
- lpStat->cbSize.s.LowPart = fi.nFileSizeLow;
- lpStat->cbSize.s.HighPart = fi.nFileSizeHigh;
+ lpStat->cbSize.u.LowPart = fi.nFileSizeLow;
+ lpStat->cbSize.u.HighPart = fi.nFileSizeHigh;
lpStat->mtime = fi.ftLastWriteTime;
lpStat->ctime = fi.ftCreationTime;
lpStat->atime = fi.ftLastAccessTime;
Index: ordinal.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/ordinal.c,v
retrieving revision 1.75
diff -u -r1.75 ordinal.c
--- ordinal.c 1 Oct 2003 03:10:42 -0000 1.75
+++ ordinal.c 22 Jan 2004 23:34:24 -0000
@@ -3414,7 +3414,7 @@
* Success: A handle to the loaded module
* Failure: A NULL handle.
*/
-HMODULE WINAPI MLLoadLibraryA(LPCSTR new_mod, HMODULE inst_hwnd, DWORD dwFlags)
+HMODULE WINAPI MLLoadLibraryA(LPCSTR new_mod, HANDLE inst_hwnd, DWORD dwFlags, LPCSTR component, BOOL cross_code_page)
{
/* FIXME: Native appears to do DPA_Create and a DPA_InsertPtr for
* each call here.
@@ -3453,7 +3453,7 @@
*
* Unicode version of MLLoadLibraryA.
*/
-HMODULE WINAPI MLLoadLibraryW(LPCWSTR new_mod, HMODULE inst_hwnd, DWORD dwFlags)
+HMODULE WINAPI MLLoadLibraryW(LPCWSTR new_mod, HANDLE inst_hwnd, DWORD dwFlags, LPCWSTR component, BOOL cross_code_page)
{
WCHAR mod_path[2*MAX_PATH];
LPWSTR ptr;
Index: path.c Index: path.c
=================================================================== ===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/path.c,v RCS file: /home/wine/wine/dlls/shlwapi/path.c,v
retrieving revision 1.40 retrieving revision 1.41
diff -u -r1.40 path.c diff -u -r1.41 path.c
--- path.c 19 Jan 2004 21:46:14 -0000 1.40 --- path.c 23 Jan 2004 22:45:25 -0000 1.41
+++ path.c 22 Jan 2004 23:34:26 -0000 +++ path.c 28 Jan 2004 22:02:59 -0000
@@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
#include "wingdi.h" #include "wingdi.h"
#include "winuser.h" #include "winuser.h"
@ -72,90 +13,13 @@ diff -u -r1.40 path.c
#define NO_SHLWAPI_STREAM #define NO_SHLWAPI_STREAM
#include "shlwapi.h" #include "shlwapi.h"
#include "wine/debug.h" #include "wine/debug.h"
@@ -3268,7 +3269,7 @@
if (lpszUrl[1] != ':' && lpszUrl[1] != '|' && isalphaW(*lpszUrl))
return E_INVALIDARG;
- hr = UrlUnescapeW(lpszUrl, lpszPath, pcchPath, dwFlags);
+ hr = UrlUnescapeW((LPWSTR) lpszUrl, lpszPath, pcchPath, dwFlags);
if (lpszPath[1] == '|')
lpszPath[1] = ':';
@@ -3745,7 +3746,7 @@
* The match is made against the end of the suffix string, so for example:
* lpszSuffix="fooBAR" matches "BAR", but lpszSuffix="fooBARfoo" does not.
*/
-int WINAPI PathFindSuffixArrayA(LPCSTR lpszSuffix, LPCSTR *lppszArray, int dwCount)
+LPCSTR WINAPI PathFindSuffixArrayA(LPCSTR lpszSuffix, LPCSTR *lppszArray, int dwCount)
{
size_t dwLen;
int dwRet = 0;
@@ -3762,13 +3763,13 @@
if (dwCompareLen < dwLen)
{
if (!strcmp(lpszSuffix + dwLen - dwCompareLen, *lppszArray))
- return dwRet; /* Found */
+ return *lppszArray; /* Found */
}
dwRet++;
lppszArray++;
}
}
- return 0;
+ return NULL;
}
/*************************************************************************
@@ -3776,7 +3777,7 @@
*
* See PathFindSuffixArrayA.
*/
-int WINAPI PathFindSuffixArrayW(LPCWSTR lpszSuffix, LPCWSTR *lppszArray, int dwCount)
+LPCWSTR WINAPI PathFindSuffixArrayW(LPCWSTR lpszSuffix, LPCWSTR *lppszArray, int dwCount)
{
size_t dwLen;
int dwRet = 0;
@@ -3793,13 +3794,13 @@
if (dwCompareLen < dwLen)
{
if (!strcmpW(lpszSuffix + dwLen - dwCompareLen, *lppszArray))
- return dwRet; /* Found */
+ return *lppszArray; /* Found */
}
dwRet++;
lppszArray++;
}
}
- return 0;
+ return NULL;
}
/*************************************************************************
Index: shlwapi.spec
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/shlwapi.spec,v
retrieving revision 1.83
diff -u -r1.83 shlwapi.spec
--- shlwapi.spec 19 Jan 2004 21:46:14 -0000 1.83
+++ shlwapi.spec 22 Jan 2004 23:34:28 -0000
@@ -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 MLLoadLibraryA(str long long long long)
+378 stdcall MLLoadLibraryW(wstr long long long long)
379 stub -noname Shell_GetCachedImageIndexWrapW
380 stub -noname Shell_GetCachedImageIndexWrapA
381 stub -noname AssocCopyVerbs
Index: string.c Index: string.c
=================================================================== ===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/string.c,v RCS file: /home/wine/wine/dlls/shlwapi/string.c,v
retrieving revision 1.39 retrieving revision 1.40
diff -u -r1.39 string.c diff -u -r1.40 string.c
--- string.c 22 Nov 2003 00:00:53 -0000 1.39 --- string.c 23 Jan 2004 22:45:25 -0000 1.40
+++ string.c 22 Jan 2004 23:34:30 -0000 +++ string.c 28 Jan 2004 22:03:00 -0000
@@ -556,7 +556,7 @@ @@ -556,7 +556,7 @@
{ {
TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSearch)); TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSearch));
@ -174,143 +38,21 @@ diff -u -r1.39 string.c
} }
/************************************************************************* /*************************************************************************
@@ -1343,7 +1343,7 @@
* CoTaskMemFree() and its type set to STRRET_CSTRA.
* Failure: E_FAIL, if any parameters are invalid.
*/
-HRESULT WINAPI StrRetToBufA (LPSTRRET src, const ITEMIDLIST *pidl, LPSTR dest, DWORD len)
+HRESULT WINAPI StrRetToBufA (LPSTRRET src, const ITEMIDLIST *pidl, LPSTR dest, UINT len)
{
/* NOTE:
* This routine is identical to that in dlls/shell32/shellstring.c.
@@ -1392,7 +1392,7 @@
*
* See StrRetToBufA.
*/
-HRESULT WINAPI StrRetToBufW (LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, DWORD len)
+HRESULT WINAPI StrRetToBufW (LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
{
TRACE("dest=%p len=0x%lx strret=%p pidl=%p stub\n",dest,len,src,pidl);
Index: url.c Index: url.c
=================================================================== ===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/url.c,v RCS file: /home/wine/wine/dlls/shlwapi/url.c,v
retrieving revision 1.26 retrieving revision 1.27
diff -u -r1.26 url.c diff -u -r1.27 url.c
--- url.c 1 Oct 2003 03:10:42 -0000 1.26 --- url.c 23 Jan 2004 22:45:25 -0000 1.27
+++ url.c 22 Jan 2004 23:34:31 -0000 +++ url.c 28 Jan 2004 22:03:02 -0000
@@ -34,9 +34,9 @@ @@ -1396,8 +1396,8 @@
#include "shlwapi.h"
#include "wine/debug.h"
-HMODULE WINAPI MLLoadLibraryW(LPCWSTR,HMODULE,DWORD);
-BOOL WINAPI MLFreeLibrary(HMODULE);
-HRESULT WINAPI MLBuildResURLW(LPCWSTR,HMODULE,DWORD,LPCWSTR,LPWSTR,DWORD);
+HINSTANCE WINAPI MLLoadLibraryW(LPCWSTR,HANDLE,DWORD,LPCWSTR,BOOL);
+BOOL WINAPI MLFreeLibrary(HMODULE);
+HRESULT WINAPI MLBuildResURLW(LPCWSTR,HMODULE,DWORD,LPCWSTR,LPWSTR,DWORD);
WINE_DEFAULT_DEBUG_CHANNEL(shell);
@@ -1130,7 +1130,7 @@
* the first occurrence of either a '?' or '#' character.
*/
HRESULT WINAPI UrlUnescapeA(
- LPCSTR pszUrl,
+ LPSTR pszUrl,
LPSTR pszUnescaped,
LPDWORD pcchUnescaped,
DWORD dwFlags)
@@ -1194,7 +1194,7 @@
* See UrlUnescapeA.
*/
HRESULT WINAPI UrlUnescapeW(
- LPCWSTR pszUrl,
+ LPWSTR pszUrl,
LPWSTR pszUnescaped,
LPDWORD pcchUnescaped,
DWORD dwFlags)
@@ -1396,14 +1396,14 @@
* Success: TRUE. lpDest is filled with the computed hash value. * Success: TRUE. lpDest is filled with the computed hash value.
* Failure: FALSE, if any argument is invalid. * Failure: FALSE, if any argument is invalid.
*/ */
-BOOL WINAPI HashData(const unsigned char *lpSrc, INT nSrcLen, -HRESULT WINAPI HashData(const unsigned char *lpSrc, DWORD nSrcLen,
- unsigned char *lpDest, INT nDestLen) - unsigned char *lpDest, DWORD nDestLen)
+HRESULT WINAPI HashData(LPBYTE lpSrc, DWORD nSrcLen, +HRESULT WINAPI HashData(LPBYTE lpSrc, DWORD nSrcLen,
+ LPBYTE lpDest, DWORD nDestLen) + LPBYTE lpDest, DWORD nDestLen)
{ {
INT srcCount = nSrcLen - 1, destCount = nDestLen - 1; INT srcCount = nSrcLen - 1, destCount = nDestLen - 1;
if (IsBadReadPtr(lpSrc, nSrcLen) ||
IsBadWritePtr(lpDest, nDestLen))
- return FALSE;
+ return E_INVALIDARG;
while (destCount >= 0)
{
@@ -1421,7 +1421,7 @@
}
srcCount--;
}
- return TRUE;
+ return S_OK;
}
/*************************************************************************
@@ -1438,7 +1438,7 @@
* Success: S_OK. lpDest is filled with the computed hash value.
* Failure: E_INVALIDARG, if any argument is invalid.
*/
-HRESULT WINAPI UrlHashA(LPCSTR pszUrl, unsigned char *lpDest, INT nDestLen)
+HRESULT WINAPI UrlHashA(LPCSTR pszUrl, unsigned char *lpDest, DWORD nDestLen)
{
if (IsBadStringPtrA(pszUrl, -1) || IsBadWritePtr(lpDest, nDestLen))
return E_INVALIDARG;
@@ -1452,7 +1452,7 @@
*
* See UrlHashA.
*/
-HRESULT WINAPI UrlHashW(LPCWSTR pszUrl, unsigned char *lpDest, INT nDestLen)
+HRESULT WINAPI UrlHashW(LPCWSTR pszUrl, unsigned char *lpDest, DWORD nDestLen)
{
char szUrl[MAX_PATH];
@@ -1900,9 +1900,9 @@
memset(pl, 0, sizeof(WINE_PARSE_URL));
pl->pScheme = pszUrl;
work = URL_ScanID(pl->pScheme, &pl->szScheme, SCHEME);
- if (!*work || (*work != L':')) goto ERROR;
+ if (!*work || (*work != L':')) goto ErrorExit;
work++;
- if ((*work != L'/') || (*(work+1) != L'/')) goto ERROR;
+ if ((*work != L'/') || (*(work+1) != L'/')) goto ErrorExit;
pl->pUserName = work + 2;
work = URL_ScanID(pl->pUserName, &pl->szUserName, USERPASS);
if (*work == L':' ) {
@@ -1926,7 +1926,7 @@
pl->szUserName = pl->szPassword = 0;
work = pl->pUserName - 1;
pl->pUserName = pl->pPassword = 0;
- } else goto ERROR;
+ } else goto ErrorExit;
/* now start parsing hostname or hostnumber */
work++;
@@ -1951,7 +1951,7 @@
pl->pPort, pl->szPort,
pl->pQuery, pl->szQuery);
return S_OK;
- ERROR:
+ ErrorExit:
FIXME("failed to parse %s\n", debugstr_w(pszUrl));
return E_INVALIDARG;
}
@@ -2433,7 +2433,7 @@
dwDestLen -= (szResLen + 1);
memcpy(lpszDest, szRes, sizeof(szRes));
- hMod = MLLoadLibraryW(lpszLibName, hMod, dwFlags);
+ hMod = MLLoadLibraryW(lpszLibName, hMod, dwFlags, NULL, FALSE);
if (hMod)
{