Alexandre Julliard : setupapi: Make setupx. dll into a stand-alone 16-bit module.

Alexandre Julliard julliard at winehq.org
Fri Oct 2 11:02:19 CDT 2009


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Oct  1 19:45:07 2009 +0200

setupapi: Make setupx.dll into a stand-alone 16-bit module.

---

 .gitignore                                         |    1 -
 configure                                          |    9 ++++++++
 configure.ac                                       |    1 +
 dlls/Makefile.in                                   |    4 ---
 dlls/setupapi/Makefile.in                          |    8 -------
 dlls/setupapi/stubs.c                              |   19 ------------------
 dlls/setupx.dll16/Makefile.in                      |   18 +++++++++++++++++
 dlls/{setupapi => setupx.dll16}/devinst16.c        |    0 
 dlls/{setupapi => setupx.dll16}/infparse.c         |    1 -
 .../setupx.spec => setupx.dll16/setupx.dll16.spec} |    0 
 dlls/{setupapi => setupx.dll16}/setupx16.h         |    0 
 dlls/{setupapi => setupx.dll16}/setupx_main.c      |   19 +++++++++++++++++-
 dlls/{setupapi => setupx.dll16}/virtcopy.c         |   21 ++++++++++++++++---
 13 files changed, 63 insertions(+), 38 deletions(-)

diff --git a/.gitignore b/.gitignore
index 6c9437e..5d498c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -115,7 +115,6 @@ dlls/rpcrt4/epm_c.c
 dlls/rpcrt4/tests/server.h
 dlls/rpcrt4/tests/server_c.c
 dlls/rpcrt4/tests/server_s.c
-dlls/setupx.dll16
 dlls/shdocvw/shdocvw_v1.tlb
 dlls/stdole2.tlb/std_ole_v2.tlb
 dlls/stdole32.tlb/std_ole_v1.tlb
diff --git a/configure b/configure
index a68d6e8..c16637c 100755
--- a/configure
+++ b/configure
@@ -16444,6 +16444,14 @@ dlls/setupapi/tests/Makefile: dlls/setupapi/tests/Makefile.in dlls/Maketest.rule
 ac_config_files="$ac_config_files dlls/setupapi/tests/Makefile"
 
 ALL_MAKEFILES="$ALL_MAKEFILES \\
+	dlls/setupx.dll16/Makefile"
+test "x$enable_win16" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
+	setupx.dll16"
+ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS
+dlls/setupx.dll16/Makefile: dlls/setupx.dll16/Makefile.in dlls/Makedll.rules"
+ac_config_files="$ac_config_files dlls/setupx.dll16/Makefile"
+
+ALL_MAKEFILES="$ALL_MAKEFILES \\
 	dlls/sfc/Makefile"
 test "x$enable_sfc" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
 	sfc"
@@ -19068,6 +19076,7 @@ do
     "dlls/serialui/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/serialui/tests/Makefile" ;;
     "dlls/setupapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/setupapi/Makefile" ;;
     "dlls/setupapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/setupapi/tests/Makefile" ;;
+    "dlls/setupx.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/setupx.dll16/Makefile" ;;
     "dlls/sfc/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sfc/Makefile" ;;
     "dlls/sfc_os/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/sfc_os/Makefile" ;;
     "dlls/shdoclc/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/shdoclc/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 49aaa07..6210c2f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2418,6 +2418,7 @@ WINE_CONFIG_MAKEFILE([dlls/serialui/Makefile],[dlls/Makedll.rules],[dlls],[ALL_D
 WINE_CONFIG_MAKEFILE([dlls/serialui/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS],[enable_tests])
 WINE_CONFIG_MAKEFILE([dlls/setupapi/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
 WINE_CONFIG_MAKEFILE([dlls/setupapi/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS],[enable_tests])
+WINE_CONFIG_MAKEFILE([dlls/setupx.dll16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS],[enable_win16])
 WINE_CONFIG_MAKEFILE([dlls/sfc/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
 WINE_CONFIG_MAKEFILE([dlls/sfc_os/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
 WINE_CONFIG_MAKEFILE([dlls/shdoclc/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 60dc2ba..8dcfdab 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -22,7 +22,6 @@ WIN16_FILES = \
 	gdi.exe16 \
 	krnl386.exe16 \
 	mmsystem.dll16 \
-	setupx.dll16 \
 	user.exe16 \
 	wprocs.dll16
 
@@ -43,9 +42,6 @@ gdi.exe16:
 krnl386.exe16:
 	echo "kernel32.dll" >$@
 
-setupx.dll16:
-	echo "setupapi.dll" >$@
-
 user.exe16:
 	echo "user32.dll" >$@
 
diff --git a/dlls/setupapi/Makefile.in b/dlls/setupapi/Makefile.in
index 971a542..b72c612 100644
--- a/dlls/setupapi/Makefile.in
+++ b/dlls/setupapi/Makefile.in
@@ -23,14 +23,6 @@ C_SRCS = \
 	stringtable.c \
 	stubs.c
 
-C_SRCS16 = \
-	devinst16.c \
-	infparse.c \
-	setupx_main.c \
-	virtcopy.c
-
-SPEC_SRCS16 = setupx.spec
-
 RC_SRCS = \
 	Bg.rc \
 	Cs.rc \
diff --git a/dlls/setupapi/stubs.c b/dlls/setupapi/stubs.c
index 7ba85b6..1b217db 100644
--- a/dlls/setupapi/stubs.c
+++ b/dlls/setupapi/stubs.c
@@ -33,25 +33,6 @@
 WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
 
 /***********************************************************************
- *		TPWriteProfileString (SETUPX.62)
- */
-BOOL WINAPI TPWriteProfileString16( LPCSTR section, LPCSTR entry, LPCSTR string )
-{
-    FIXME( "%s %s %s: stub\n", debugstr_a(section), debugstr_a(entry), debugstr_a(string) );
-    return TRUE;
-}
-
-
-/***********************************************************************
- *		suErrorToIds  (SETUPX.61)
- */
-DWORD WINAPI suErrorToIds16( WORD w1, WORD w2 )
-{
-    FIXME( "%x %x: stub\n", w1, w2 );
-    return 0;
-}
-
-/***********************************************************************
  *              CM_Connect_MachineA  (SETUPAPI.@)
  */
 CONFIGRET WINAPI CM_Connect_MachineA(PCSTR name, PHMACHINE machine)
diff --git a/dlls/setupx.dll16/Makefile.in b/dlls/setupx.dll16/Makefile.in
new file mode 100644
index 0000000..78aca16
--- /dev/null
+++ b/dlls/setupx.dll16/Makefile.in
@@ -0,0 +1,18 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR    = @srcdir@
+VPATH     = @srcdir@
+MODULE    = setupx.dll16
+IMPORTS   = setupapi user32 advapi32 kernel32
+
+EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,setupapi.dll
+
+C_SRCS = \
+	devinst16.c \
+	infparse.c \
+	setupx_main.c \
+	virtcopy.c
+
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
diff --git a/dlls/setupapi/devinst16.c b/dlls/setupx.dll16/devinst16.c
similarity index 100%
rename from dlls/setupapi/devinst16.c
rename to dlls/setupx.dll16/devinst16.c
diff --git a/dlls/setupapi/infparse.c b/dlls/setupx.dll16/infparse.c
similarity index 99%
rename from dlls/setupapi/infparse.c
rename to dlls/setupx.dll16/infparse.c
index 50aca20..d6cbed0 100644
--- a/dlls/setupapi/infparse.c
+++ b/dlls/setupx.dll16/infparse.c
@@ -38,7 +38,6 @@
 #include "winnls.h"
 #include "setupapi.h"
 #include "setupx16.h"
-#include "setupapi_private.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
diff --git a/dlls/setupapi/setupx.spec b/dlls/setupx.dll16/setupx.dll16.spec
similarity index 100%
rename from dlls/setupapi/setupx.spec
rename to dlls/setupx.dll16/setupx.dll16.spec
diff --git a/dlls/setupapi/setupx16.h b/dlls/setupx.dll16/setupx16.h
similarity index 100%
rename from dlls/setupapi/setupx16.h
rename to dlls/setupx.dll16/setupx16.h
diff --git a/dlls/setupapi/setupx_main.c b/dlls/setupx.dll16/setupx_main.c
similarity index 96%
rename from dlls/setupapi/setupx_main.c
rename to dlls/setupx.dll16/setupx_main.c
index 0690333..de3a397 100644
--- a/dlls/setupapi/setupx_main.c
+++ b/dlls/setupx.dll16/setupx_main.c
@@ -66,7 +66,6 @@
 #include "winnls.h"
 #include "setupapi.h"
 #include "setupx16.h"
-#include "setupapi_private.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
@@ -95,6 +94,24 @@ DWORD WINAPI SURegQueryValueEx( HKEY hkey, LPSTR lpszValueName,
                                lpbData, lpcbData );
 }
 
+/***********************************************************************
+ *		TPWriteProfileString (SETUPX.62)
+ */
+BOOL WINAPI TPWriteProfileString16( LPCSTR section, LPCSTR entry, LPCSTR string )
+{
+    FIXME( "%s %s %s: stub\n", debugstr_a(section), debugstr_a(entry), debugstr_a(string) );
+    return TRUE;
+}
+
+
+/***********************************************************************
+ *		suErrorToIds  (SETUPX.61)
+ */
+DWORD WINAPI suErrorToIds16( WORD w1, WORD w2 )
+{
+    FIXME( "%x %x: stub\n", w1, w2 );
+    return 0;
+}
 
 /***********************************************************************
  *		InstallHinfSection (SETUPX.527)
diff --git a/dlls/setupapi/virtcopy.c b/dlls/setupx.dll16/virtcopy.c
similarity index 97%
rename from dlls/setupapi/virtcopy.c
rename to dlls/setupx.dll16/virtcopy.c
index 2506a6a..a15f1a1 100644
--- a/dlls/setupapi/virtcopy.c
+++ b/dlls/setupx.dll16/virtcopy.c
@@ -31,11 +31,20 @@
 #include "winnls.h"
 #include "setupapi.h"
 #include "setupx16.h"
-#include "setupapi_private.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
 
+/* copied from setupapi */
+#define COPYFILEDLGORD	1000
+#define SOURCESTRORD	500
+#define DESTSTRORD	501
+#define PROGRESSORD	502
+
+#define REG_INSTALLEDFILES "System\\CurrentControlSet\\Control\\InstalledFiles"
+#define REGPART_RENAME "\\Rename"
+#define REG_VERSIONCONFLICT "Software\\Microsoft\\VersionConflictManager"
+
 static FARPROC16 VCP_Proc = NULL;
 static LPARAM VCP_MsgRef = 0;
 
@@ -43,6 +52,8 @@ static BOOL VCP_opened = FALSE;
 
 static VCPSTATUS vcp_status;
 
+static HMODULE SETUPAPI_hInstance;
+
 static WORD VCP_Callback( LPVOID obj, UINT16 msg, WPARAM16 wParam, LPARAM lParam, LPARAM lParamRef )
 {
     WORD args[8];
@@ -214,10 +225,10 @@ static RETERR16 VCP_VirtnodeCreate(const VCPFILESPEC *vfsSrc, const VCPFILESPEC
 	vn_num += 20;
 	if (pvnlist)
 	    pvnlist = HeapReAlloc(heap, HEAP_ZERO_MEMORY, pvnlist,
-		    		sizeof(LPVIRTNODE *) * vn_num);
+				sizeof(LPVIRTNODE *) * vn_num);
 	else
-	    pvnlist = HeapAlloc(heap, HEAP_ZERO_MEMORY, 
-		    		sizeof(LPVIRTNODE *) * vn_num);
+	    pvnlist = HeapAlloc(heap, HEAP_ZERO_MEMORY,
+				sizeof(LPVIRTNODE *) * vn_num);
     }
     pvnlist[vn_last] = HeapAlloc(heap, HEAP_ZERO_MEMORY, sizeof(VIRTNODE));
     lpvn = pvnlist[vn_last];
@@ -584,6 +595,8 @@ static void VCP_UI_RegisterProgressClass(void)
     wndClass.lpszClassName = "setupx_progress";
 
     RegisterClassA (&wndClass);
+
+    SETUPAPI_hInstance = LoadLibraryA( "setupapi.dll" );
 }
 
 static RETERR16 VCP_UI_NodeCompare(LPVIRTNODE vn1, LPVIRTNODE vn2)




More information about the wine-cvs mailing list