Alexandre Julliard : shell32: Move the RunDLL_CallEntry16 implementation to shell.dll.

Alexandre Julliard julliard at winehq.org
Thu Dec 31 07:42:41 CST 2009


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Dec 30 17:29:06 2009 +0100

shell32: Move the RunDLL_CallEntry16 implementation to shell.dll.

---

 dlls/shell.dll16/shell.c          |   25 +++++++++++++++++++++++++
 dlls/shell.dll16/shell.dll16.spec |    4 ++++
 dlls/shell32/control.c            |   28 ----------------------------
 dlls/shell32/shell32.spec         |    2 +-
 4 files changed, 30 insertions(+), 29 deletions(-)

diff --git a/dlls/shell.dll16/shell.c b/dlls/shell.dll16/shell.c
index 9964b60..b33d3cc 100644
--- a/dlls/shell.dll16/shell.c
+++ b/dlls/shell.dll16/shell.c
@@ -612,3 +612,28 @@ HINSTANCE16 WINAPI ShellExecute16( HWND16 hWnd, LPCSTR lpOperation,
     return HINSTANCE_16( WOWShellExecute( HWND_32(hWnd), lpOperation, lpFile, lpParameters,
                                           lpDirectory, iShowCmd, SHELL_Execute16 ));
 }
+
+
+/*************************************************************************
+ * RunDLL_CallEntry16
+ *
+ * Only exported from shell32 on Windows, probably imported
+ * from shell through the 16/32 thunks.
+ */
+void WINAPI RunDLL_CallEntry16( DWORD proc, HWND hwnd, HINSTANCE inst, LPCSTR cmdline, INT cmdshow )
+{
+    WORD args[5];
+    SEGPTR cmdline_seg;
+
+    TRACE( "proc %x hwnd %p inst %p cmdline %s cmdshow %d\n",
+           proc, hwnd, inst, debugstr_a(cmdline), cmdshow );
+
+    cmdline_seg = MapLS( cmdline );
+    args[4] = HWND_16(hwnd);
+    args[3] = MapHModuleLS(inst);
+    args[2] = SELECTOROF(cmdline_seg);
+    args[1] = OFFSETOF(cmdline_seg);
+    args[0] = cmdshow;
+    WOWCallback16Ex( proc, WCB16_PASCAL, sizeof(args), args, NULL );
+    UnMapLS( cmdline_seg );
+}
diff --git a/dlls/shell.dll16/shell.dll16.spec b/dlls/shell.dll16/shell.dll16.spec
index ac36ec7..df03ace 100644
--- a/dlls/shell.dll16/shell.dll16.spec
+++ b/dlls/shell.dll16/shell.dll16.spec
@@ -43,3 +43,7 @@
 #  402 _RUNDLLCHECKDRIVE
 
 #32 WCI
+
+################################################################
+# Wine extensions: functions needed by shell32
+@ stdcall -arch=win32 RunDLL_CallEntry16(long long ptr str long)
diff --git a/dlls/shell32/control.c b/dlls/shell32/control.c
index cfea201..730f8a6 100644
--- a/dlls/shell32/control.c
+++ b/dlls/shell32/control.c
@@ -29,8 +29,6 @@
 #include "wingdi.h"
 #include "winuser.h"
 #include "winreg.h"
-#include "wine/winbase16.h"
-#include "wownt32.h"
 #include "wine/debug.h"
 #include "cpl.h"
 #include "wine/unicode.h"
@@ -878,32 +876,6 @@ HRESULT WINAPI Control_FillCache_RunDLLA(HWND hWnd, HANDLE hModule, DWORD w, DWO
     return Control_FillCache_RunDLLW(hWnd, hModule, w, x);
 }
 
-
-/*************************************************************************
- * RunDLL_CallEntry16				[SHELL32.122]
- * the name is probably wrong
- */
-void WINAPI RunDLL_CallEntry16( DWORD proc, HWND hwnd, HINSTANCE inst,
-                                LPCSTR cmdline, INT cmdshow )
-{
-#ifdef __i386__
-    WORD args[5];
-    SEGPTR cmdline_seg;
-
-    TRACE( "proc %x hwnd %p inst %p cmdline %s cmdshow %d\n",
-           proc, hwnd, inst, debugstr_a(cmdline), cmdshow );
-
-    cmdline_seg = MapLS( cmdline );
-    args[4] = HWND_16(hwnd);
-    args[3] = MapHModuleLS(inst);
-    args[2] = SELECTOROF(cmdline_seg);
-    args[1] = OFFSETOF(cmdline_seg);
-    args[0] = cmdshow;
-    WOWCallback16Ex( proc, WCB16_PASCAL, sizeof(args), args, NULL );
-    UnMapLS( cmdline_seg );
-#endif
-}
-
 /*************************************************************************
  * CallCPLEntry16				[SHELL32.166]
  *
diff --git a/dlls/shell32/shell32.spec b/dlls/shell32/shell32.spec
index f95690c..fc1347e 100644
--- a/dlls/shell32/shell32.spec
+++ b/dlls/shell32/shell32.spec
@@ -114,7 +114,7 @@
  119 stdcall -noname IsLFNDrive(ptr) IsLFNDriveAW
  120 stdcall -noname FileMenu_AbortInitMenu()
  121 stdcall -noname SHFlushClipboard()
- 122 stdcall -noname RunDLL_CallEntry16(long long long str long) #name wrong?
+ 122 stdcall -private @(long long long str long) shell.dll16.RunDLL_CallEntry16
  123 stdcall -noname SHFreeUnusedLibraries()
  124 stdcall -noname FileMenu_AppendFilesForPidl(long ptr long)
  125 stdcall -noname FileMenu_AddFilesForPidl(long long long ptr long long ptr)




More information about the wine-cvs mailing list