shlwapi cleanup
Jürgen Schmied
juergenschmied at lycos.de
Wed Jul 24 14:34:26 CDT 2002
- replaced function pointers with delay loading
---
juergen.schmied at debitel.net
-------------- next part --------------
Index: wine/dlls/shlwapi/Makefile.in
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/Makefile.in,v
retrieving revision 1.21
diff -d -u -r1.21 Makefile.in
--- wine/dlls/shlwapi/Makefile.in 22 Jul 2002 20:32:53 -0000 1.21
+++ wine/dlls/shlwapi/Makefile.in 24 Jul 2002 19:21:55 -0000
@@ -4,8 +4,8 @@
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = shlwapi.dll
-# fixme: avoid ole32.dll import
-IMPORTS = ole32 user32 gdi32 advapi32 kernel32
+IMPORTS = advapi32 gdi32 kernel32 user32
+DELAYIMPORTS = comctl32 comdlg32 mpr ole32 shell32 version winmm
EXTRALIBS = $(LIBUUID) $(LIBUNICODE)
LDDLLFLAGS = @LDDLLFLAGS@
@@ -33,3 +33,5 @@
@MAKE_DLL_RULES@
### Dependencies:
+
+
Index: wine/dlls/shlwapi/ordinal.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/ordinal.c,v
retrieving revision 1.49
diff -d -u -r1.49 ordinal.c
--- wine/dlls/shlwapi/ordinal.c 23 Jul 2002 01:59:46 -0000 1.49
+++ wine/dlls/shlwapi/ordinal.c 24 Jul 2002 19:21:59 -0000
@@ -2,7 +2,7 @@
* SHLWAPI ordinal functions
*
* Copyright 1997 Marcus Meissner
- * 1998 J?rgen Schmied
+ * 1998 Jrgen Schmied
* 2001 Jon Griffiths
*
* This library is free software; you can redistribute it and/or
@@ -115,27 +115,7 @@
};
/* function pointers for GET_FUNC macro; these need to be global because of gcc bug */
-static LPITEMIDLIST (WINAPI *pSHBrowseForFolderW)(LPBROWSEINFOW);
static HRESULT (WINAPI *pConvertINetUnicodeToMultiByte)(LPDWORD,DWORD,LPCWSTR,LPINT,LPSTR,LPINT);
-static BOOL (WINAPI *pPlaySoundW)(LPCWSTR, HMODULE, DWORD);
-static DWORD (WINAPI *pSHGetFileInfoW)(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
-static UINT (WINAPI *pDragQueryFileW)(HDROP, UINT, LPWSTR, UINT);
-static BOOL (WINAPI *pSHGetPathFromIDListW)(LPCITEMIDLIST, LPWSTR);
-static BOOL (WINAPI *pShellExecuteExW)(LPSHELLEXECUTEINFOW);
-static HICON (WINAPI *pSHFileOperationW)(LPSHFILEOPSTRUCTW);
-static HICON (WINAPI *pExtractIconExW)(LPCWSTR, INT,HICON *,HICON *, UINT);
-static BOOL (WINAPI *pSHGetNewLinkInfoW)(LPCWSTR, LPCWSTR, LPCWSTR, BOOL*, UINT);
-static DWORD (WINAPI *pSHDefExtractIconW)(LPVOID, LPVOID, LPVOID, LPVOID, LPVOID, LPVOID); /* FIXME: Correct args */
-static HICON (WINAPI *pExtractIconW)(HINSTANCE, LPCWSTR, UINT);
-static BOOL (WINAPI *pGetSaveFileNameW)(LPOPENFILENAMEW);
-static DWORD (WINAPI *pWNetRestoreConnectionW)(LPVOID, LPVOID); /* FIXME: Correct args */
-static DWORD (WINAPI *pWNetGetLastErrorW)(LPVOID, LPVOID, LPVOID, LPVOID, LPVOID); /* FIXME: Correct args */
-static BOOL (WINAPI *pPageSetupDlgW)(LPPAGESETUPDLGW);
-static BOOL (WINAPI *pPrintDlgW)(LPPRINTDLGW);
-static BOOL (WINAPI *pGetOpenFileNameW)(LPOPENFILENAMEW);
-static DWORD (WINAPI *pGetFileVersionInfoSizeW)(LPCWSTR,LPDWORD);
-static BOOL (WINAPI *pGetFileVersionInfoW)(LPCWSTR,DWORD,DWORD,LPVOID);
-static WORD (WINAPI *pVerQueryValueW)(LPVOID,LPCWSTR,LPVOID*,UINT*);
/*
NOTES: Most functions exported by ordinal seem to be superflous.
@@ -1185,7 +1165,7 @@
return E_FAIL;
}
/*************************************************************************
- * @ [SHLWAPI.176]
+ * _IUnknown_QueryService [SHLWAPI.176]
*
* _IUnknown_QueryService
*
@@ -1351,6 +1331,8 @@
/*************************************************************************
* @ [SHLWAPI.215]
*
+ * _SHAnsiToUnicode
+ *
* NOTES
* check me!
*/
@@ -1359,12 +1341,11 @@
LPWSTR lpwStrDest,
int len)
{
- INT len_a, ret;
+ INT ret;
- len_a = lstrlenA(lpStrSrc);
- ret = MultiByteToWideChar(0, 0, lpStrSrc, len_a, lpwStrDest, len);
- TRACE("%s %s %d, ret=%d\n",
- debugstr_a(lpStrSrc), debugstr_w(lpwStrDest), len, ret);
+ ret = MultiByteToWideChar(0, 0, lpStrSrc, -1, lpwStrDest, len);
+ if (!ret) ((LPWSTR)lpwStrDest)[len-1] = 0;
+ TRACE("%s %s %d, ret=%d\n", debugstr_a(lpStrSrc), debugstr_w(lpwStrDest), len, ret);
return ret;
}
@@ -1528,6 +1509,26 @@
}
/*************************************************************************
+ * @ [SHLWAPI.222]
+ *
+ * _SHGlobalCounterCreate
+ *
+ * NOTES
+ * securityattributes missing
+ */
+HANDLE WINAPI SHLWAPI_222 (LPCLSID guid)
+{
+ char lpstrName[80];
+
+ sprintf( lpstrName, "shell.{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
+ guid->Data1, guid->Data2, guid->Data3,
+ guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
+ guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7] );
+ TRACE("(%s)\n", lpstrName);
+ return CreateSemaphoreA(NULL,0, 0x7fffffff, lpstrName);
+}
+
+/*************************************************************************
* @ [SHLWAPI.236]
*/
HMODULE WINAPI SHLWAPI_236 (REFIID lpUnknown)
@@ -1600,16 +1601,19 @@
/*************************************************************************
* @ [SHLWAPI.241]
*
+ * _StopWatchMode
*/
DWORD WINAPI SHLWAPI_241 ()
{
FIXME("()stub\n");
- return /* 0xabba1243 */ 0;
+ return 0;
}
/*************************************************************************
* @ [SHLWAPI.266]
*
+ * _SHRestrictionLookup
+ *
* native does at least approximately:
* strcpyW(newstr, x);
* strcatW(newstr, "\\Restrictions");
@@ -1624,7 +1628,7 @@
LPVOID z)
{
FIXME("(%p %p %p %p)stub\n",w,x,y,z);
- return /* 0xabba1248 */ 0;
+ return 0;
}
/*************************************************************************
@@ -1772,17 +1776,6 @@
}
/*************************************************************************
- * @ [SHLWAPI.289]
- *
- * Late bound call to winmm.PlaySoundW
- */
-BOOL WINAPI SHLWAPI_289(LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound)
-{
- GET_FUNC(pPlaySoundW, winmm, "PlaySoundW", FALSE);
- return pPlaySoundW(pszSound, hmod, fdwSound);
-}
-
-/*************************************************************************
* @ [SHLWAPI.294]
*/
BOOL WINAPI SHLWAPI_294(LPSTR str1, LPSTR str2, LPSTR pStr, DWORD some_len, LPCSTR lpStr2)
@@ -1824,87 +1817,9 @@
}
/*************************************************************************
- * @ [SHLWAPI.313]
- *
- * Late bound call to shell32.SHGetFileInfoW
- */
-DWORD WINAPI SHLWAPI_313(LPCWSTR path, DWORD dwFileAttributes,
- SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
-{
- GET_FUNC(pSHGetFileInfoW, shell32, "SHGetFileInfoW", 0);
- return pSHGetFileInfoW(path, dwFileAttributes, psfi, sizeofpsfi, flags);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.318]
- *
- * Late bound call to shell32.DragQueryFileW
- */
-UINT WINAPI SHLWAPI_318(HDROP hDrop, UINT lFile, LPWSTR lpszFile, UINT lLength)
-{
- GET_FUNC(pDragQueryFileW, shell32, "DragQueryFileW", 0);
- return pDragQueryFileW(hDrop, lFile, lpszFile, lLength);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.333]
- *
- * Late bound call to shell32.SHBrowseForFolderW
- */
-LPITEMIDLIST WINAPI SHLWAPI_333(LPBROWSEINFOW lpBi)
-{
- GET_FUNC(pSHBrowseForFolderW, shell32, "SHBrowseForFolderW", NULL);
- return pSHBrowseForFolderW(lpBi);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.334]
- *
- * Late bound call to shell32.SHGetPathFromIDListW
- */
-BOOL WINAPI SHLWAPI_334(LPCITEMIDLIST pidl,LPWSTR pszPath)
-{
- GET_FUNC(pSHGetPathFromIDListW, shell32, "SHGetPathFromIDListW", 0);
- return pSHGetPathFromIDListW(pidl, pszPath);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.335]
- *
- * Late bound call to shell32.ShellExecuteExW
- */
-BOOL WINAPI SHLWAPI_335(LPSHELLEXECUTEINFOW lpExecInfo)
-{
- GET_FUNC(pShellExecuteExW, shell32, "ShellExecuteExW", FALSE);
- return pShellExecuteExW(lpExecInfo);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.336]
- *
- * Late bound call to shell32.SHFileOperationW.
- */
-DWORD WINAPI SHLWAPI_336(LPSHFILEOPSTRUCTW lpFileOp)
-{
- GET_FUNC(pSHFileOperationW, shell32, "SHFileOperationW", 0);
- return pSHFileOperationW(lpFileOp);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.337]
- *
- * Late bound call to shell32.ExtractIconExW.
- */
-HICON WINAPI SHLWAPI_337(LPCWSTR lpszFile, INT nIconIndex, HICON *phiconLarge,
- HICON *phiconSmall, UINT nIcons)
-{
- GET_FUNC(pExtractIconExW, shell32, "ExtractIconExW", (HICON)0);
- return pExtractIconExW(lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons);
-}
-
-/*************************************************************************
* @ [SHLWAPI.342]
*
+ * _SHInterlockedCompareExchange
*/
LONG WINAPI SHInterlockedCompareExchange( PLONG dest, LONG xchg, LONG compare)
{
@@ -1925,77 +1840,6 @@
}
/*************************************************************************
- * @ [SHLWAPI.350]
- *
- * seems to be late bound call to GetFileVersionInfoSizeW
- */
-DWORD WINAPI SHLWAPI_350 (
- LPWSTR x,
- LPVOID y)
-{
- DWORD ret;
-
- GET_FUNC(pGetFileVersionInfoSizeW, version, "GetFileVersionInfoSizeW", 0);
- ret = pGetFileVersionInfoSizeW(x, y);
- return 0x208 + ret;
-}
-
-/*************************************************************************
- * @ [SHLWAPI.351]
- *
- * seems to be late bound call to GetFileVersionInfoW
- */
-BOOL WINAPI SHLWAPI_351 (
- LPWSTR w, /* [in] path to dll */
- DWORD x, /* [in] parm 2 to GetFileVersionInfoA */
- DWORD y, /* [in] return value from .350 - assume length */
- LPVOID z) /* [in/out] buffer (+0x208 sent to GetFileVersionInfoA) */
-{
- GET_FUNC(pGetFileVersionInfoW, version, "GetFileVersionInfoW", 0);
- return pGetFileVersionInfoW(w, x, y-0x208, (char*)z+0x208);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.352]
- *
- * seems to be late bound call to VerQueryValueW
- */
-WORD WINAPI SHLWAPI_352 (
- LPVOID w, /* [in] buffer from _351 */
- LPWSTR x, /* [in] value to retrieve -
- converted and passed to VerQueryValueA as #2 */
- LPVOID y, /* [out] ver buffer - passed to VerQueryValueA as #3 */
- UINT* z) /* [in] ver length - passed to VerQueryValueA as #4 */
-{
- GET_FUNC(pVerQueryValueW, version, "VerQueryValueW", 0);
- return pVerQueryValueW((char*)w+0x208, x, y, z);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.357]
- *
- * Late bound call to shell32.SHGetNewLinkInfoW
- */
-BOOL WINAPI SHLWAPI_357(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName,
- BOOL *pfMustCopy, UINT uFlags)
-{
- GET_FUNC(pSHGetNewLinkInfoW, shell32, "SHGetNewLinkInfoW", FALSE);
- return pSHGetNewLinkInfoW(pszLinkTo, pszDir, pszName, pfMustCopy, uFlags);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.358]
- *
- * Late bound call to shell32.SHDefExtractIconW
- */
-DWORD WINAPI SHLWAPI_358(LPVOID arg1, LPVOID arg2, LPVOID arg3, LPVOID arg4,
- LPVOID arg5, LPVOID arg6)
-{
- GET_FUNC(pSHDefExtractIconW, shell32, "SHDefExtractIconW", 0);
- return pSHDefExtractIconW(arg1, arg2, arg3, arg4, arg5, arg6);
-}
-
-/*************************************************************************
* @ [SHLWAPI.364]
*
* Wrapper for lstrcpynA with src and dst swapped.
@@ -2007,18 +1851,6 @@
}
/*************************************************************************
- * @ [SHLWAPI.370]
- *
- * Late bound call to shell32.ExtractIconW
- */
-HICON WINAPI SHLWAPI_370(HINSTANCE hInstance, LPCWSTR lpszExeFileName,
- UINT nIconIndex)
-{
- GET_FUNC(pExtractIconW, shell32, "ExtractIconW", (HICON)0);
- return pExtractIconW(hInstance, lpszExeFileName, nIconIndex);
-}
-
-/*************************************************************************
* @ [SHLWAPI.376]
*/
LANGID WINAPI SHLWAPI_376 ()
@@ -2089,73 +1921,6 @@
return 0;
}
-/*************************************************************************
- * @ [SHLWAPI.389]
- *
- * Late bound call to comdlg32.GetSaveFileNameW
- */
-BOOL WINAPI SHLWAPI_389(LPOPENFILENAMEW ofn)
-{
- GET_FUNC(pGetSaveFileNameW, comdlg32, "GetSaveFileNameW", FALSE);
- return pGetSaveFileNameW(ofn);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.390]
- *
- * Late bound call to mpr.WNetRestoreConnectionW
- */
-DWORD WINAPI SHLWAPI_390(LPVOID arg1, LPVOID arg2)
-{
- GET_FUNC(pWNetRestoreConnectionW, mpr, "WNetRestoreConnectionW", 0);
- return pWNetRestoreConnectionW(arg1, arg2);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.391]
- *
- * Late bound call to mpr.WNetGetLastErrorW
- */
-DWORD WINAPI SHLWAPI_391(LPVOID arg1, LPVOID arg2, LPVOID arg3, LPVOID arg4,
- LPVOID arg5)
-{
- GET_FUNC(pWNetGetLastErrorW, mpr, "WNetGetLastErrorW", 0);
- return pWNetGetLastErrorW(arg1, arg2, arg3, arg4, arg5);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.401]
- *
- * Late bound call to comdlg32.PageSetupDlgW
- */
-BOOL WINAPI SHLWAPI_401(LPPAGESETUPDLGW pagedlg)
-{
- GET_FUNC(pPageSetupDlgW, comdlg32, "PageSetupDlgW", FALSE);
- return pPageSetupDlgW(pagedlg);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.402]
- *
- * Late bound call to comdlg32.PrintDlgW
- */
-BOOL WINAPI SHLWAPI_402(LPPRINTDLGW printdlg)
-{
- GET_FUNC(pPrintDlgW, comdlg32, "PrintDlgW", FALSE);
- return pPrintDlgW(printdlg);
-}
-
-/*************************************************************************
- * @ [SHLWAPI.403]
- *
- * Late bound call to comdlg32.GetOpenFileNameW
- */
-BOOL WINAPI SHLWAPI_403(LPOPENFILENAMEW ofn)
-{
- GET_FUNC(pGetOpenFileNameW, comdlg32, "GetOpenFileNameW", FALSE);
- return pGetOpenFileNameW(ofn);
-}
-
/* INTERNAL: Map from HLS color space to RGB */
static WORD ConvertHue(int wHue, WORD wMid1, WORD wMid2)
{
@@ -2221,6 +1986,42 @@
}
/*************************************************************************
+ * SHGlobalCounterCreateNamedA [SHLWAPI.422]
+ */
+HANDLE WINAPI SHLWAPI_422 (LPCSTR pwName, int nInitialCount)
+{
+ CHAR pwCounterName[MAX_PATH];
+ HANDLE hSem;
+
+ lstrcpyA(pwCounterName, "shell.");
+ lstrcatA(pwCounterName, pwName);
+ hSem = CreateSemaphoreA(NULL /* FIXME */, nInitialCount, MAXLONG, pwCounterName);
+ if (!hSem) {
+ OpenSemaphoreA( SYNCHRONIZE | SEMAPHORE_MODIFY_STATE, 0, pwCounterName);
+ }
+ return hSem;
+}
+
+/*************************************************************************
+ * SHGlobalCounterCreateNamedW [SHLWAPI.423]
+ */
+HANDLE WINAPI SHLWAPI_423 (LPCWSTR pwName, int nInitialCount)
+{
+ WCHAR pwCounterName[MAX_PATH];
+ WCHAR pwShell[7] = {'s','h','e','l','l','.','\0'};
+ HANDLE hSem;
+
+ lstrcpyW(pwCounterName, pwShell);
+ lstrcatW(pwCounterName, pwName);
+ hSem = CreateSemaphoreW(NULL /* FIXME */, nInitialCount, MAXLONG, pwCounterName);
+ if (!hSem) {
+ OpenSemaphoreW( SYNCHRONIZE | SEMAPHORE_MODIFY_STATE, 0, pwCounterName);
+ }
+ return hSem;
+}
+
+
+/*************************************************************************
* @ [SHLWAPI.418]
*
* Function seems to do FreeLibrary plus other things.
@@ -2355,6 +2156,8 @@
/*************************************************************************
* @ [SHLWAPI.437]
+ *
+ * _IsOS
*
* NOTES
* In the real shlwapi, One time initialisation calls GetVersionEx and reads
Index: wine/dlls/shlwapi/path.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/path.c,v
retrieving revision 1.20
diff -d -u -r1.20 path.c
--- wine/dlls/shlwapi/path.c 31 May 2002 23:40:52 -0000 1.20
+++ wine/dlls/shlwapi/path.c 24 Jul 2002 19:22:04 -0000
@@ -259,7 +259,7 @@
*/
LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive)
{
- TRACE("(%p,%d)\n", debugstr_a(lpszPath), drive);
+ TRACE("(%p,%d)\n", lpszPath, drive);
if (lpszPath && drive >= 0 && drive < 26)
{
@@ -278,7 +278,7 @@
*/
LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive)
{
- TRACE("(%p,%d)\n",debugstr_w(lpszPath), drive);
+ TRACE("(%p,%d)\n",lpszPath, drive);
if (lpszPath && drive >= 0 && drive < 26)
{
Index: wine/dlls/shlwapi/reg.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/reg.c,v
retrieving revision 1.29
diff -d -u -r1.29 reg.c
--- wine/dlls/shlwapi/reg.c 20 Jul 2002 20:04:44 -0000 1.29
+++ wine/dlls/shlwapi/reg.c 24 Jul 2002 19:22:07 -0000
@@ -1618,3 +1618,13 @@
TRACE("new key is %08x\n", newKey);
return newKey;
}
+
+
+
+
+
+
+
+
+
+
Index: wine/dlls/shlwapi/shlwapi.spec
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/shlwapi.spec,v
retrieving revision 1.45
diff -d -u -r1.45 shlwapi.spec
--- wine/dlls/shlwapi/shlwapi.spec 22 Jul 2002 20:32:53 -0000 1.45
+++ wine/dlls/shlwapi/shlwapi.spec 24 Jul 2002 19:22:09 -0000
@@ -221,9 +221,9 @@
219 stdcall @(long long long long) SHLWAPI_219
220 stub @
221 stub @
-222 stdcall @(long) SHLWAPI_222
-223 stdcall @(long) SHLWAPI_223
-224 stdcall @(long) SHLWAPI_224
+222 stdcall @(long) _SHGlobalCounterCreate
+223 stdcall @(long) _SHGlobalCounterGetValue
+224 stdcall @(long) _SHGlobalCounterIncrement
225 stub @
226 stub @
227 stub @
@@ -288,7 +288,7 @@
286 stub @
287 stdcall @(ptr ptr) SHLWAPI_287
288 stub @
-289 stdcall @(wstr long long) SHLWAPI_289
+289 forward @ winmm.PlaySoundW
290 stub @
291 stub @
292 stub @
@@ -312,12 +312,12 @@
310 forward @ kernel32.GetTimeFormatW
311 forward @ kernel32.GetDateFormatW
312 forward @ kernel32.GetPrivateProfileStringW
-313 stdcall @(ptr long ptr long long) SHLWAPI_313
+313 forward @ shell32.SHGetFileInfoW
314 forward @ user32.RegisterClassExW
315 forward @ user32.GetClassInfoExW
316 stub SHCreateStreamOnFileAOld
317 stub SHCreateStreamOnFileWOld
-318 stdcall @(long long wstr long) SHLWAPI_318
+318 forward @ shell32.DragQueryFileW
319 forward @ user32.FindWindowExW
320 stdcall @(str str) SHLWAPI_320
321 stdcall @(wstr wstr) SHLWAPI_321
@@ -332,11 +332,11 @@
330 stub @
331 stub @
332 forward @ user32.CallMsgFilterW
-333 stdcall @(ptr) SHLWAPI_333
-334 stdcall @(ptr wstr) SHLWAPI_334
-335 stdcall @(ptr) SHLWAPI_335
-336 stdcall @(ptr) SHLWAPI_336
-337 stdcall @(wstr long ptr ptr long) SHLWAPI_337
+333 forward @ shell32.SHBrowseForFolderW
+334 forward @ shell32.SHGetPathFromIDListW
+335 forward @ shell32.ShellExecuteExW
+336 forward @ shell32.SHFileOperationW
+337 forward @ shell32.ExtractIconExW
338 forward @ kernel32.SetFileAttributesW
339 forward @ kernel32.GetNumberFormatW
340 forward @ user32.MessageBoxW
@@ -349,15 +349,15 @@
347 forward @ advapi32.RegDeleteValueW
348 stub @
349 stub @
-350 stdcall @(wstr ptr) SHLWAPI_350
-351 stdcall @(wstr ptr long ptr) SHLWAPI_351
-352 stdcall @(ptr wstr ptr ptr) SHLWAPI_352
+350 forward @ version.GetFileVersionInfoSizeW
+351 forward @ version.GetFileVersionInfoW
+352 forward @ version.VerQueryValueW
353 stub @
354 stub @
355 stub @
-356 stdcall @(ptr ptr) SHLWAPI_356
-357 stdcall @(wstr wstr wstr long long) SHLWAPI_357
-358 stdcall @(ptr ptr ptr ptr ptr ptr) SHLWAPI_358
+356 stdcall @(ptr ptr) _CreateAllAccessSecurityAttributes
+357 forward @ shell32.SHGetNewLinkInfoW
+358 forward @ shell32.SHDefExtractIconW
359 forward @ kernel32.OpenEventW
360 forward @ kernel32.RemoveDirectoryW
361 forward @ kernel32.GetShortPathNameW
@@ -369,7 +369,7 @@
367 forward @ kernel32.WritePrivateProfileStructW
368 forward @ kernel32.GetPrivateProfileStructW
369 forward @ kernel32.CreateProcessW
-370 stdcall @(long wstr long) SHLWAPI_370
+370 forward @ shell32.ExtractIconW
371 stub @
372 stub @
373 stub @
@@ -388,9 +388,9 @@
386 stdcall ChrCmpIW(long long) ChrCmpIW
387 stub ColorAdjustLuma
388 stub @
-389 stdcall @(ptr) SHLWAPI_389
-390 stdcall @(ptr ptr) SHLWAPI_390
-391 stdcall @(ptr ptr ptr ptr ptr ) SHLWAPI_391
+389 forward @ comdlg32.GetSaveFileNameW
+390 forward @ mpr.WNetRestoreConnectionW
+391 forward @ mpr.WNetGetLastErrorW
392 stub @
393 stub @
394 forward @ user32.CreateDialogIndirectParamA
@@ -400,9 +400,9 @@
398 stub @
399 stub @
400 stub @
-401 stdcall @(ptr) SHLWAPI_401
-402 stdcall @(ptr) SHLWAPI_402
-403 stdcall @(ptr) SHLWAPI_403
+401 forward @ comdlg32.PageSetupDlgW
+402 forward @ comdlg32.PrintDlgW
+403 forward @ comdlg32.GetOpenFileNameW
404 stdcall ColorHLSToRGB(long long long) ColorHLSToRGB
405 stub @
406 stub @
@@ -421,9 +421,9 @@
419 stub @
420 stub @
421 stub @
-422 stdcall @(str long) SHLWAPI_422
-423 stdcall @(wstr long) SHLWAPI_423
-424 stdcall @(long) SHLWAPI_424
+422 stdcall @(str long) _SHGlobalCounterCreateNamedA
+423 stdcall @(wstr long) _SHGlobalCounterCreateNamedW
+424 stdcall @(long) _SHGlobalCounterDecrement
425 stub @
426 stub @
427 stub @
@@ -700,7 +700,6 @@
@ stdcall PathIsLFNFileSpecW(wstr) PathIsLFNFileSpecW
@ stdcall PathFindSuffixArrayA(str ptr long) PathFindSuffixArrayA
@ stdcall PathFindSuffixArrayW(wstr ptr long) PathFindSuffixArrayW
-@ stdcall _SHGetInstanceExplorer at 4(ptr) _SHGetInstanceExplorer
@ stdcall PathUndecorateA(str) PathUndecorateA
@ stdcall PathUndecorateW(wstr) PathUndecorateW
@ stub PathUnExpandEnvStringsA
@@ -725,3 +724,8 @@
@ stub StrFormatByteSize64A
@ stub StrFormatKBSizeA
@ stub StrFormatKBSizeW
+
+
+
+
+
Index: wine/dlls/shlwapi/thread.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/thread.c,v
retrieving revision 1.1
diff -d -u -r1.1 thread.c
--- wine/dlls/shlwapi/thread.c 22 Jul 2002 20:32:53 -0000 1.1
+++ wine/dlls/shlwapi/thread.c 24 Jul 2002 19:22:11 -0000
@@ -36,12 +36,10 @@
extern DWORD SHLWAPI_ThreadRef_index; /* Initialised in shlwapi_main.c */
-static HRESULT (WINAPI *pSHGetInstanceExplorer)(IUnknown**);
-
DWORD WINAPI SHLWAPI_23(REFGUID,LPSTR,INT);
/**************************************************************************
- * @ [SHLWAPI.356]
+ * _CreateAllAccessSecurityAttributes [SHLWAPI.356]
*
* Initialise security attributes from a security descriptor.
*
@@ -52,60 +50,28 @@
* RETURNS
* Success: lpAttr, initialised using lpSec.
* Failure: NULL, if any parameters are invalid.
- *
- * NOTES
- * This function always returns returns NULL if the underlying OS version
- * Wine is impersonating does not use security descriptors (i.e. anything
- * before Windows NT).
*/
LPSECURITY_ATTRIBUTES
-WINAPI SHLWAPI_356(LPSECURITY_ATTRIBUTES lpAttr, PSECURITY_DESCRIPTOR lpSec)
+WINAPI _CreateAllAccessSecurityAttributes (LPSECURITY_ATTRIBUTES lpAttr, PSECURITY_DESCRIPTOR lpSec)
{
- /* This function is used within SHLWAPI only to create security attributes
- * for shell semaphores. */
-
TRACE("(%p,%p)\n", lpAttr, lpSec);
- if (0) /* FIXME: SHWAPI_OsIsUnicode, as per shell32 */
- {
- if (!lpSec || !lpAttr)
+ if (!lpSec || !lpAttr)
return NULL;
- if (InitializeSecurityDescriptor(lpSec, 1))
+ if (InitializeSecurityDescriptor(lpSec, 1))
+ {
+ if (SetSecurityDescriptorDacl(lpSec, TRUE, NULL, FALSE))
{
- if (SetSecurityDescriptorDacl(lpSec, TRUE, NULL, FALSE))
- {
- lpAttr->nLength = sizeof(SECURITY_ATTRIBUTES);
- lpAttr->lpSecurityDescriptor = lpSec;
- lpAttr->bInheritHandle = FALSE;
- return lpAttr;
- }
+ lpAttr->nLength = sizeof(SECURITY_ATTRIBUTES);
+ lpAttr->lpSecurityDescriptor = lpSec;
+ lpAttr->bInheritHandle = FALSE;
+ return lpAttr;
}
}
return NULL;
}
-/*************************************************************************
- * _SHGetInstanceExplorer [SHLWAPI.@]
- *
- * Get an interface to the shell explorer.
- *
- * PARAMS
- * lpUnknown [O] pointer to recieve interface.
- *
- * RETURNS
- * Success: S_OK. lppUnknown contains the explorer interface.
- * Failure: An HRESULT error code.
- */
-HRESULT WINAPI _SHGetInstanceExplorer(IUnknown **lppUnknown)
-{
- /* This function is used within SHLWAPI only to hold the IE reference
- * for threads created with the CTF_PROCESS_REF flag set. */
-
- GET_FUNC(pSHGetInstanceExplorer, shell32, "SHGetInstanceExplorer", E_FAIL);
- return pSHGetInstanceExplorer(lppUnknown);
-}
-
/* Internal thread information structure */
typedef struct tagSHLWAPI_THREAD_INFO
{
@@ -281,7 +247,7 @@
ti.refThread = NULL;
if(dwFlags & CTF_PROCESS_REF)
- _SHGetInstanceExplorer(&ti.refIE);
+ SHGetInstanceExplorer(&ti.refIE);
else
ti.refIE = NULL;
@@ -325,7 +291,7 @@
}
/*************************************************************************
- * @ [SHLWAPI.223]
+ * _SHGlobalCounterGetValue [SHLWAPI.223]
*
* Get the current count of a semaphore.
*
@@ -335,7 +301,7 @@
* RETURNS
* The current count of the semaphore.
*/
-DWORD WINAPI SHLWAPI_223(HANDLE hSem)
+DWORD WINAPI _SHGlobalCounterGetValue(HANDLE hSem)
{
DWORD dwOldCount = 0;
@@ -346,7 +312,7 @@
}
/*************************************************************************
- * @ [SHLWAPI.224]
+ * _SHGlobalCounterIncrement [SHLWAPI.224]
*
* Claim a semaphore.
*
@@ -356,7 +322,7 @@
* RETURNS
* The new count of the semaphore.
*/
-DWORD WINAPI SHLWAPI_224(HANDLE hSem)
+DWORD WINAPI _SHGlobalCounterIncrement(HANDLE hSem)
{
DWORD dwOldCount = 0;
@@ -366,7 +332,7 @@
}
/*************************************************************************
- * @ [SHLWAPI.424]
+ * _SHGlobalCounterDecrement [SHLWAPI.424]
*
* Release a semaphore.
*
@@ -376,23 +342,22 @@
* RETURNS
* The new count of the semaphore.
*/
-DWORD WINAPI SHLWAPI_424(HANDLE hSem)
+DWORD WINAPI _SHGlobalCounterDecrement(HANDLE hSem)
{
DWORD dwOldCount = 0;
TRACE("(0x%08x)\n", hSem);
- dwOldCount = SHLWAPI_223(hSem);
+ dwOldCount = _SHGlobalCounterGetValue(hSem);
WaitForSingleObject(hSem, 0);
return dwOldCount - 1;
}
/*************************************************************************
- * @ [SHLWAPI.423]
+ * _SHGlobalCounterCreateNamedW [SHLWAPI.423]
*
- * Unicode version of SHLWAPI_422.
*/
-HANDLE WINAPI SHLWAPI_423(LPCWSTR lpszName, DWORD iInitial)
+HANDLE WINAPI _SHGlobalCounterCreateNamedW(LPCWSTR lpszName, DWORD iInitial)
{
static const WCHAR szPrefix[] = { 's', 'h', 'e', 'l', 'l', '.', '\0' };
const int iPrefixLen = 6;
@@ -410,7 +375,7 @@
StrCpyNW(szBuff + iPrefixLen, lpszName, iBuffLen - iPrefixLen);
/* Initialise security attributes */
- pSecAttr = SHLWAPI_356(&sAttr, &sd);
+ pSecAttr = _CreateAllAccessSecurityAttributes(&sAttr, &sd);
if (!(hRet = CreateSemaphoreW(pSecAttr , iInitial, MAXLONG, szBuff)))
hRet = OpenSemaphoreW(SYNCHRONIZE|SEMAPHORE_MODIFY_STATE, 0, szBuff);
@@ -418,7 +383,7 @@
}
/*************************************************************************
- * @ [SHLWAPI.422]
+ * _SHGlobalCounterCreateNamedA [SHLWAPI.422]
*
* Create a semaphore.
*
@@ -429,7 +394,7 @@
* RETURNS
* A new semaphore handle.
*/
-HANDLE WINAPI SHLWAPI_422(LPCSTR lpszName, DWORD iInitial)
+HANDLE WINAPI _SHGlobalCounterCreateNamedA(LPCSTR lpszName, DWORD iInitial)
{
WCHAR szBuff[MAX_PATH];
@@ -437,11 +402,11 @@
if (lpszName)
MultiByteToWideChar(0, 0, lpszName, -1, szBuff, MAX_PATH);
- return SHLWAPI_423(lpszName ? szBuff : NULL, iInitial);
+ return _SHGlobalCounterCreateNamedW(lpszName ? szBuff : NULL, iInitial);
}
/*************************************************************************
- * @ [SHLWAPI.222]
+ * _SHGlobalCounterCreate [SHLWAPI.222]
*
* Create a semaphore using the name of a GUID.
*
@@ -454,7 +419,7 @@
* NOTES
* The initial count of the semaphore is set to 0.
*/
-HANDLE WINAPI SHLWAPI_222(REFGUID guid)
+HANDLE WINAPI _SHGlobalCounterCreate(REFGUID guid)
{
char szName[40];
@@ -462,5 +427,5 @@
/* Create a named semaphore using the GUID string */
SHLWAPI_23(guid, szName, sizeof(szName) - 1);
- return SHLWAPI_422(szName, 0);
+ return _SHGlobalCounterCreateNamedA(szName, 0);
}
Index: wine/include/shlobj.h
===================================================================
RCS file: /home/wine/wine/include/shlobj.h,v
retrieving revision 1.51
diff -d -u -r1.51 shlobj.h
--- wine/include/shlobj.h 31 May 2002 23:06:48 -0000 1.51
+++ wine/include/shlobj.h 24 Jul 2002 19:22:19 -0000
@@ -543,6 +543,10 @@
BOOL fWide;
} DROPFILES;
+
+HRESULT WINAPI SHGetInstanceExplorer(IUnknown **ppunk);
+
+
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
Index: wine/include/wine/obj_misc.h
===================================================================
RCS file: /home/wine/wine/include/wine/obj_misc.h,v
retrieving revision 1.13
diff -d -u -r1.13 obj_misc.h
--- wine/include/wine/obj_misc.h 31 May 2002 23:06:50 -0000 1.13
+++ wine/include/wine/obj_misc.h 24 Jul 2002 19:22:35 -0000
@@ -103,7 +103,7 @@
#define ICOM_INTERFACE IMallocSpy
#define IMallocSpy_METHODS \
ICOM_METHOD1 (ULONG,PreAlloc, ULONG,cbRequest) \
- ICOM_VMETHOD1( PostAlloc, void*,pActual) \
+ ICOM_METHOD1 (PVOID,PostAlloc, void*,pActual) \
ICOM_METHOD2 (PVOID,PreFree, void*,pRequest, BOOL,fSpyed) \
ICOM_VMETHOD1( PostFree, BOOL,fSpyed) \
ICOM_METHOD4 (ULONG,PreRealloc, void*,pRequest, ULONG,cbRequest, void**,ppNewRequest, BOOL,fSpyed) \
More information about the wine-patches
mailing list