Moving some 16-bit code

Ge van Geldorp gvg at reactos.com
Wed Sep 22 14:36:42 CDT 2004


dlls/shell32/control.c contains some 16-bit code (function RunDLL_CallEntry16),
which I would like to separate out. I wonder if the attached patch is the
correct way to do that?
On Win2k export 122 is just a stub. Maybe it would be ok to turn our export 122
into an empty function too?

Ge van Geldorp.

Index: control.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/control.c,v
retrieving revision 1.20
diff -u -r1.20 control.c
--- control.c	12 Jul 2004 19:50:56 -0000	1.20
+++ control.c	22 Sep 2004 19:28:18 -0000
@@ -456,30 +456,6 @@
     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 )
-{
-    WORD args[5];
-    SEGPTR cmdline_seg;
-
-    TRACE( "proc %lx 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 );
-}
-
 /*************************************************************************
  * CallCPLEntry16				[SHELL32.166]
  *
Index: shell.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell.c,v
retrieving revision 1.61
diff -u -r1.61 shell.c
--- shell.c	15 Jun 2004 18:27:50 -0000	1.61
+++ shell.c	22 Sep 2004 19:28:18 -0000
@@ -657,3 +657,27 @@
 
     return HINSTANCE_16(seiW.hInstApp);
 }
+
+
+/*************************************************************************
+ * RunDLL_CallEntry16				[SHELL32.122]
+ * the name is probably wrong
+ */
+void WINAPI RunDLL_CallEntry16( DWORD proc, HWND hwnd, HINSTANCE inst,
+                                LPCSTR cmdline, INT cmdshow )
+{
+    WORD args[5];
+    SEGPTR cmdline_seg;
+
+    TRACE( "proc %lx 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 );
+}
Index: shell32.spec
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32.spec,v
retrieving revision 1.87
diff -u -r1.87 shell32.spec
--- shell32.spec	6 Sep 2004 20:24:10 -0000	1.87
+++ shell32.spec	22 Sep 2004 19:28:19 -0000
@@ -115,7 +115,6 @@
  119 stdcall IsLFNDrive(ptr) IsLFNDriveAW
  120 stdcall FileMenu_AbortInitMenu ()
  121 stdcall SHFlushClipboard ()
- 122 stdcall -noname RunDLL_CallEntry16(long long long str long) #name wrong?
  123 stdcall SHFreeUnusedLibraries ()
  124 stdcall FileMenu_AppendFilesForPidl(long ptr long)
  125 stdcall FileMenu_AddFilesForPidl(long long long ptr long long ptr)
Index: shell.spec
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell.spec,v
retrieving revision 1.10
diff -u -r1.10 shell.spec
--- shell.spec	26 Sep 2003 04:32:20 -0000	1.10
+++ shell.spec	22 Sep 2004 19:28:19 -0000
@@ -29,6 +29,8 @@
 102 pascal -ret16 RegisterShellHook(word word) RegisterShellHook16
 103 pascal   ShellHookProc(word word long) ShellHookProc16
 
+122 pascal RunDLL_CallEntry16(long long long str long) #name wrong?
+
 157 stub RESTARTDIALOG
 #  166 PICKICONDLG
 



More information about the wine-devel mailing list