diff --git a/.gitignore b/.gitignore index 8120c55843c..93ff5f27c98 100644 --- a/.gitignore +++ b/.gitignore @@ -84,7 +84,6 @@ dlls/rpcrt4/tests/server_c.c dlls/rpcrt4/tests/server_s.c dlls/setupx.dll16 dlls/shdocvw/shdocvw_v1.tlb -dlls/shell.dll16 dlls/stdole2.tlb/std_ole_v2.tlb dlls/stdole32.tlb/std_ole_v1.tlb dlls/system.drv16 diff --git a/configure b/configure index b45a122ccef..5468a78d429 100755 --- a/configure +++ b/configure @@ -26852,6 +26852,14 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS dlls/shdocvw/tests/Makefile: dlls/shdocvw/tests/Makefile.in dlls/Maketest.rules" ac_config_files="$ac_config_files dlls/shdocvw/tests/Makefile" +ALL_MAKEFILES="$ALL_MAKEFILES \\ + dlls/shell.dll16/Makefile" +test "x$enable_win16" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\ + shell.dll16" +ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS +dlls/shell.dll16/Makefile: dlls/shell.dll16/Makefile.in dlls/Makedll.rules" +ac_config_files="$ac_config_files dlls/shell.dll16/Makefile" + ALL_MAKEFILES="$ALL_MAKEFILES \\ dlls/shell32/Makefile" test "x$enable_shell32" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\ @@ -29204,6 +29212,7 @@ do "dlls/shdoclc/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shdoclc/Makefile" ;; "dlls/shdocvw/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shdocvw/Makefile" ;; "dlls/shdocvw/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shdocvw/tests/Makefile" ;; + "dlls/shell.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shell.dll16/Makefile" ;; "dlls/shell32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shell32/Makefile" ;; "dlls/shell32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shell32/tests/Makefile" ;; "dlls/shfolder/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shfolder/Makefile" ;; diff --git a/configure.ac b/configure.ac index a243045ec5e..e3d4b63870c 100644 --- a/configure.ac +++ b/configure.ac @@ -2188,6 +2188,7 @@ WINE_CONFIG_MAKEFILE([dlls/sfc_os/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL WINE_CONFIG_MAKEFILE([dlls/shdoclc/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/shdocvw/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/shdocvw/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS],[enable_tests]) +WINE_CONFIG_MAKEFILE([dlls/shell.dll16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS],[enable_win16]) WINE_CONFIG_MAKEFILE([dlls/shell32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) WINE_CONFIG_MAKEFILE([dlls/shell32/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS],[enable_tests]) WINE_CONFIG_MAKEFILE([dlls/shfolder/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS]) diff --git a/dlls/Makefile.in b/dlls/Makefile.in index badffb68b21..498cb65ebc3 100644 --- a/dlls/Makefile.in +++ b/dlls/Makefile.in @@ -25,7 +25,6 @@ WIN16_FILES = \ mmsystem.dll16 \ msvideo.dll16 \ setupx.dll16 \ - shell.dll16 \ system.drv16 \ toolhelp.dll16 \ user.exe16 \ @@ -58,9 +57,6 @@ msvideo.dll16: setupx.dll16: echo "setupapi.dll" >$@ -shell.dll16: - echo "shell32.dll" >$@ - ddeml.dll16 user.exe16: echo "user32.dll" >$@ diff --git a/dlls/shell.dll16/Makefile.in b/dlls/shell.dll16/Makefile.in new file mode 100644 index 00000000000..07cf620edca --- /dev/null +++ b/dlls/shell.dll16/Makefile.in @@ -0,0 +1,19 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = shell.dll16 +IMPORTS = shell32 user32 advapi32 kernel32 + +EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,shell32.dll +EXTRARCFLAGS = -O res16 + +SPEC_SRCS = shell.dll16.spec + +C_SRCS = shell.c + +RC_SRCS = version.rc + +@MAKE_DLL_RULES@ + +@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/shell32/shell.c b/dlls/shell.dll16/shell.c similarity index 98% rename from dlls/shell32/shell.c rename to dlls/shell.dll16/shell.c index db49c29deae..9964b60c2d8 100644 --- a/dlls/shell32/shell.c +++ b/dlls/shell.dll16/shell.c @@ -42,7 +42,6 @@ #include "shlwapi.h" #include "wine/winbase16.h" -#include "shell32_main.h" #include "wine/debug.h" @@ -52,6 +51,11 @@ extern HINSTANCE WINAPI WOWShellExecute(HWND hWnd, LPCSTR lpOperation,LPCSTR lpF LPCSTR lpParameters,LPCSTR lpDirectory, INT iShowCmd, void *callback); +#define HICON_16(h32) (LOWORD(h32)) +#define HICON_32(h16) ((HICON)(ULONG_PTR)(h16)) +#define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16)) +#define HINSTANCE_16(h32) (LOWORD(h32)) + typedef struct { /* structure for dropped files */ WORD wSize; POINT16 ptMousePos; @@ -170,7 +174,9 @@ HINSTANCE16 WINAPI FindExecutable16( LPCSTR lpFile, LPCSTR lpDirectory, */ BOOL16 WINAPI AboutDlgProc16( HWND16 hWnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam ) -{ return (BOOL16)AboutDlgProc( HWND_32(hWnd), msg, wParam, lParam ); +{ + FIXME( "stub\n" ); + return FALSE; } diff --git a/dlls/shell32/shell.spec b/dlls/shell.dll16/shell.dll16.spec similarity index 100% rename from dlls/shell32/shell.spec rename to dlls/shell.dll16/shell.dll16.spec diff --git a/dlls/shell32/version16.rc b/dlls/shell.dll16/version.rc similarity index 100% rename from dlls/shell32/version16.rc rename to dlls/shell.dll16/version.rc diff --git a/dlls/shell32/Makefile.in b/dlls/shell32/Makefile.in index d416eecec88..6900d312aba 100644 --- a/dlls/shell32/Makefile.in +++ b/dlls/shell32/Makefile.in @@ -64,22 +64,10 @@ SVG_SRCS = \ mydocs.svg \ trash_file.svg -C_SRCS16 = shell.c -RC_SRCS16 = version16.rc -SPEC_SRCS16 = shell.spec - EXTRA_OBJS = authors.o @MAKE_DLL_RULES@ -# Special rules for 16-bit resource files - -version16.res: version16.rc - $(LDPATH) $(RC16) $(RC16FLAGS) -fo$@ $(SRCDIR)/version16.rc - -shell.spec.o: shell.spec version16.res - $(WINEBUILD) $(WINEBUILDFLAGS) --dll -o $@ --main-module $(MODULE) --res version16.res --export $(SRCDIR)/shell.spec - authors.c: $(TOPSRCDIR)/AUTHORS (LC_ALL=C; export LC_ALL; echo 'const char * const SHELL_Authors[] = {' && \ sed -e '1,2d' -e 's/\(.*\)/ \"\1\",/' $(TOPSRCDIR)/AUTHORS && \ diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h index 973e5264c6a..eea2e18299a 100644 --- a/dlls/shell32/shell32_main.h +++ b/dlls/shell32/shell32_main.h @@ -35,7 +35,6 @@ #include "undocshell.h" #include "shlobj.h" #include "shellapi.h" -#include "wine/windef16.h" #include "wine/unicode.h" /******************************************* @@ -153,20 +152,6 @@ void FreeChangeNotifications(void); BOOL SHELL_ConfirmYesNoW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir); -/* 16-bit functions */ -void WINAPI DragAcceptFiles16(HWND16 hWnd, BOOL16 b); -UINT16 WINAPI DragQueryFile16(HDROP16 hDrop, WORD wFile, LPSTR lpszFile, WORD wLength); -void WINAPI DragFinish16(HDROP16 h); -BOOL16 WINAPI DragQueryPoint16(HDROP16 hDrop, POINT16 *p); -HINSTANCE16 WINAPI ShellExecute16(HWND16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT16); -HICON16 WINAPI ExtractIcon16(HINSTANCE16,LPCSTR,UINT16); -HICON16 WINAPI ExtractAssociatedIcon16(HINSTANCE16,LPSTR,LPWORD); -HICON16 WINAPI ExtractIconEx16 ( LPCSTR, INT16, HICON16 *, HICON16 *, UINT16 ); -HINSTANCE16 WINAPI FindExecutable16(LPCSTR,LPCSTR,LPSTR); -HGLOBAL16 WINAPI InternalExtractIcon16(HINSTANCE16,LPCSTR,UINT16,WORD); -BOOL16 WINAPI ShellAbout16(HWND16,LPCSTR,LPCSTR,HICON16); -BOOL16 WINAPI AboutDlgProc16(HWND16,UINT16,WPARAM16,LPARAM); - static inline BOOL SHELL_OsIsUnicode(void) { /* if high-bit of version is 0, we are emulating NT */ @@ -205,12 +190,6 @@ static inline WCHAR * __SHCloneStrAtoW(WCHAR ** target, const char * source) return *target; } -/* handle conversions */ -#define HICON_16(h32) (LOWORD(h32)) -#define HICON_32(h16) ((HICON)(ULONG_PTR)(h16)) -#define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16)) -#define HINSTANCE_16(h32) (LOWORD(h32)) - typedef UINT_PTR (*SHELL_ExecuteW32)(const WCHAR *lpCmd, WCHAR *env, BOOL shWait, const SHELLEXECUTEINFOW *sei, LPSHELLEXECUTEINFOW sei_out); diff --git a/dlls/shell32/shellreg.c b/dlls/shell32/shellreg.c index fe87e9619ca..37f3d9e4484 100644 --- a/dlls/shell32/shellreg.c +++ b/dlls/shell32/shellreg.c @@ -33,7 +33,6 @@ #include "winreg.h" #include "undocshell.h" -#include "wine/winbase16.h" #include "wine/debug.h" diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c index 3be59627b81..201791faaee 100644 --- a/dlls/shell32/shlexec.c +++ b/dlls/shell32/shlexec.c @@ -42,7 +42,6 @@ #include "shlwapi.h" #include "ddeml.h" -#include "wine/winbase16.h" #include "shell32_main.h" #include "pidl.h" #include "shresdef.h"