shell32: Move the RunDLL_CallEntry16 implementation to shell.dll.
This commit is contained in:
parent
c3e9de0b4c
commit
89df78e2c0
|
@ -612,3 +612,28 @@ HINSTANCE16 WINAPI ShellExecute16( HWND16 hWnd, LPCSTR lpOperation,
|
||||||
return HINSTANCE_16( WOWShellExecute( HWND_32(hWnd), lpOperation, lpFile, lpParameters,
|
return HINSTANCE_16( WOWShellExecute( HWND_32(hWnd), lpOperation, lpFile, lpParameters,
|
||||||
lpDirectory, iShowCmd, SHELL_Execute16 ));
|
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 );
|
||||||
|
}
|
||||||
|
|
|
@ -43,3 +43,7 @@
|
||||||
# 402 _RUNDLLCHECKDRIVE
|
# 402 _RUNDLLCHECKDRIVE
|
||||||
|
|
||||||
#32 WCI
|
#32 WCI
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Wine extensions: functions needed by shell32
|
||||||
|
@ stdcall -arch=win32 RunDLL_CallEntry16(long long ptr str long)
|
||||||
|
|
|
@ -29,8 +29,6 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
#include "wine/winbase16.h"
|
|
||||||
#include "wownt32.h"
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
#include "cpl.h"
|
#include "cpl.h"
|
||||||
#include "wine/unicode.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);
|
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]
|
* CallCPLEntry16 [SHELL32.166]
|
||||||
*
|
*
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
119 stdcall -noname IsLFNDrive(ptr) IsLFNDriveAW
|
119 stdcall -noname IsLFNDrive(ptr) IsLFNDriveAW
|
||||||
120 stdcall -noname FileMenu_AbortInitMenu()
|
120 stdcall -noname FileMenu_AbortInitMenu()
|
||||||
121 stdcall -noname SHFlushClipboard()
|
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()
|
123 stdcall -noname SHFreeUnusedLibraries()
|
||||||
124 stdcall -noname FileMenu_AppendFilesForPidl(long ptr long)
|
124 stdcall -noname FileMenu_AppendFilesForPidl(long ptr long)
|
||||||
125 stdcall -noname FileMenu_AddFilesForPidl(long long long ptr long long ptr)
|
125 stdcall -noname FileMenu_AddFilesForPidl(long long long ptr long long ptr)
|
||||||
|
|
Loading…
Reference in New Issue