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