"György 'Nog' Jeney" nog@sdf.lonestar.org writes:
ChangeLog:
- dlls/shell32/shell32_main.h
- dlls/shell32/shell.c
- dlls/shell32/shellreg.c
- dlls/shell32/Makefile.in
- dlls/shell32/shlexec.c Seperate out 16-bit functions into seperate file.
I have applied the registry stuff, but not ShellExecute16; this one will be need to be split properly so that the 32-bit version doesn't contain 16-bit stuff.
"György 'Nog' Jeney" nog@sdf.lonestar.org writes:
ChangeLog:
- dlls/shell32/shell32_main.h
- dlls/shell32/shell.c
- dlls/shell32/shellreg.c
- dlls/shell32/Makefile.in
- dlls/shell32/shlexec.c Seperate out 16-bit functions into seperate file.
I have applied the registry stuff, but not ShellExecute16; this one will be need to be split properly so that the 32-bit version doesn't contain 16-bit stuff.
The only place that there is 16-bit stuff in the 32-bit version is WinExec16 in SHELL_ExecuteA. Is it ok to simply call CreateProcess here? Probably not because that whould have been done already. So I dont see how this could be done without some code duplication. Mabey ifdef the WinExec16?
The only place that there is 16-bit stuff in the 32-bit version is WinExec16 in SHELL_ExecuteA. Is it ok to simply call CreateProcess here?
no CreateProcess will no allow running 16 bit execs (while WinExec16 does)
Probably not because that whould have been done already. So I dont see how this could be done without some code duplication. Mabey ifdef the WinExec16?
a way to do it is to replace the is32 boolean in most functions with a function pointer to the actual process creation implementation
it's signature would be HINSTANCE (*fn)(char *lpCmd, LPSHELLEXECUTEINFOA sei, BOOL shWait) and would be passed to ShellExecuteExA32 from a 32 bit function, code would the 32 bit part of SHELL_ExecuteA from a 16 bit function, code would the 16 bit part of SHELL_ExecuteA (this part should all be moved to 16 bit code)
A+