Mike McCormack : shlwapi: Ordinal 394 should load and call shell32. SHNotifyChange.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 16 06:16:13 CDT 2006


Module: wine
Branch: master
Commit: 106e65e0f8d5bae71a1f17d4eed447b25d73b953
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=106e65e0f8d5bae71a1f17d4eed447b25d73b953

Author: Mike McCormack <mike at codeweavers.com>
Date:   Wed Aug 16 11:57:51 2006 +0900

shlwapi: Ordinal 394 should load and call shell32.SHNotifyChange.

Makes builtin shlwapi behave better during reboot after IE6 install.

---

 dlls/shlwapi/ordinal.c    |   16 ++++++++++++++++
 dlls/shlwapi/shlwapi.spec |    2 +-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c
index b19e27b..ec52385 100644
--- a/dlls/shlwapi/ordinal.c
+++ b/dlls/shlwapi/ordinal.c
@@ -4431,3 +4431,19 @@ UINT WINAPI ZoneComputePaneSize(HWND hwn
     FIXME("\n");
     return 0x95;
 }
+
+typedef void (WINAPI *fnSHChangeNotify)(LONG, UINT, LPCVOID, LPCVOID);
+
+void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
+{
+    static fnSHChangeNotify fn;
+    HMODULE hshell32;
+
+    if (!fn)
+    {
+        hshell32 = LoadLibraryA("shell32");
+        if (hshell32)
+            fn = (fnSHChangeNotify) GetProcAddress(hshell32, "SHChangeNotify");
+    }
+    fn(wEventId, uFlags, dwItem1, dwItem2);
+}
diff --git a/dlls/shlwapi/shlwapi.spec b/dlls/shlwapi/shlwapi.spec
index 36c6b70..0843ad9 100644
--- a/dlls/shlwapi/shlwapi.spec
+++ b/dlls/shlwapi/shlwapi.spec
@@ -391,7 +391,7 @@
 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 @(long ptr long ptr long) user32.CreateDialogIndirectParamA
+394 stdcall -noname SHChangeNotify(long long ptr ptr)
 395 stub -noname MLWinHelpA
 396 stub -noname MLHtmlHelpA
 397 stub -noname MLWinHelpW




More information about the wine-cvs mailing list