Alexandre Julliard : oleaut32: Make typelib. dll into a stand-alone 16-bit module.
Alexandre Julliard
julliard at winehq.org
Thu Mar 12 09:54:19 CDT 2009
Module: wine
Branch: master
Commit: 8a7089570d19a01417467b7921ec01186ad83286
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8a7089570d19a01417467b7921ec01186ad83286
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Mar 11 17:30:10 2009 +0100
oleaut32: Make typelib.dll into a stand-alone 16-bit module.
---
.gitignore | 1 -
configure | 10 +++++++++
configure.ac | 2 +
dlls/Makefile.in | 3 +-
dlls/oleaut32/Makefile.in | 6 +---
dlls/oleaut32/hash.c | 1 -
dlls/typelib.dll16/Makefile.in | 15 +++++++++++++
.../typelib16.c => typelib.dll16/typelib.c} | 22 +++++++++++++++----
.../typelib.dll16.spec} | 2 +-
9 files changed, 48 insertions(+), 14 deletions(-)
diff --git a/.gitignore b/.gitignore
index cb01844..ac61c48 100644
--- a/.gitignore
+++ b/.gitignore
@@ -97,7 +97,6 @@ dlls/stdole32.tlb/std_ole_v1.tlb
dlls/system.drv16
dlls/toolhelp.dll16
dlls/twain.dll16
-dlls/typelib.dll16
dlls/user.exe16
dlls/ver.dll16
dlls/w32sys.dll16
diff --git a/configure b/configure
index c18840d..e9e3b50 100755
--- a/configure
+++ b/configure
@@ -3921,6 +3921,7 @@ then
enable_olesvr_dll16=${enable_olesvr_dll16:-no}
enable_storage_dll16=${enable_storage_dll16:-no}
enable_stress_dll16=${enable_stress_dll16:-no}
+ enable_typelib_dll16=${enable_typelib_dll16:-no}
enable_vdhcp_vxd=${enable_vdhcp_vxd:-no}
enable_vmm_vxd=${enable_vmm_vxd:-no}
enable_vnbt_vxd=${enable_vnbt_vxd:-no}
@@ -27226,6 +27227,14 @@ dlls/twain_32/tests/Makefile: dlls/twain_32/tests/Makefile.in dlls/Maketest.rule
ac_config_files="$ac_config_files dlls/twain_32/tests/Makefile"
ALL_MAKEFILES="$ALL_MAKEFILES \\
+ dlls/typelib.dll16/Makefile"
+test "x$enable_typelib_dll16" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
+ typelib.dll16"
+ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS
+dlls/typelib.dll16/Makefile: dlls/typelib.dll16/Makefile.in dlls/Makedll.rules"
+ac_config_files="$ac_config_files dlls/typelib.dll16/Makefile"
+
+ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/unicows/Makefile"
test "x$enable_unicows" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
unicows"
@@ -29337,6 +29346,7 @@ do
"dlls/traffic/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/traffic/Makefile" ;;
"dlls/twain_32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/twain_32/Makefile" ;;
"dlls/twain_32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/twain_32/tests/Makefile" ;;
+ "dlls/typelib.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/typelib.dll16/Makefile" ;;
"dlls/unicows/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/unicows/Makefile" ;;
"dlls/updspapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/updspapi/Makefile" ;;
"dlls/url/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/url/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index f4e34a9..56ee6ae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -158,6 +158,7 @@ then
enable_olesvr_dll16=${enable_olesvr_dll16:-no}
enable_storage_dll16=${enable_storage_dll16:-no}
enable_stress_dll16=${enable_stress_dll16:-no}
+ enable_typelib_dll16=${enable_typelib_dll16:-no}
enable_vdhcp_vxd=${enable_vdhcp_vxd:-no}
enable_vmm_vxd=${enable_vmm_vxd:-no}
enable_vnbt_vxd=${enable_vnbt_vxd:-no}
@@ -2242,6 +2243,7 @@ WINE_CONFIG_MAKEFILE([dlls/tapi32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL
WINE_CONFIG_MAKEFILE([dlls/traffic/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/twain_32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/twain_32/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS],[enable_tests])
+WINE_CONFIG_MAKEFILE([dlls/typelib.dll16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/unicows/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/updspapi/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/url/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 27783be..f5cdd1e 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -36,7 +36,6 @@ WIN16_FILES = \
system.drv16 \
toolhelp.dll16 \
twain.dll16 \
- typelib.dll16 \
user.exe16 \
ver.dll16 \
w32sys.dll16 \
@@ -78,7 +77,7 @@ krnl386.exe16 system.drv16 toolhelp.dll16:
msvideo.dll16:
echo "msvfw32.dll" >$@
-ole2disp.dll16 typelib.dll16:
+ole2disp.dll16:
echo "oleaut32.dll" >$@
rasapi16.dll16:
diff --git a/dlls/oleaut32/Makefile.in b/dlls/oleaut32/Makefile.in
index 56b96be..4ea761d 100644
--- a/dlls/oleaut32/Makefile.in
+++ b/dlls/oleaut32/Makefile.in
@@ -30,12 +30,10 @@ C_SRCS = \
vartype.c
C_SRCS16 = \
- ole2disp.c \
- typelib16.c
+ ole2disp.c
SPEC_SRCS16 = \
- ole2disp.spec \
- typelib.spec
+ ole2disp.spec
RC_SRCS = oleaut32.rc
diff --git a/dlls/oleaut32/hash.c b/dlls/oleaut32/hash.c
index 6f6eebb..a2710df 100644
--- a/dlls/oleaut32/hash.c
+++ b/dlls/oleaut32/hash.c
@@ -486,7 +486,6 @@ static const unsigned char Lookup_224[128 * 3] = {
/***********************************************************************
* LHashValOfNameSysA (OLEAUT32.166)
- * LHashValOfNameSys (TYPELIB.4)
*
* Produce a string hash value.
*
diff --git a/dlls/typelib.dll16/Makefile.in b/dlls/typelib.dll16/Makefile.in
new file mode 100644
index 0000000..d8d6c9a
--- /dev/null
+++ b/dlls/typelib.dll16/Makefile.in
@@ -0,0 +1,15 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR = @srcdir@
+VPATH = @srcdir@
+MODULE = typelib.dll16
+IMPORTS = oleaut32 advapi32 kernel32
+EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,oleaut32.dll
+
+SPEC_SRCS = typelib.dll16.spec
+
+C_SRCS = typelib.c
+
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@ # everything below this line is overwritten by make depend
diff --git a/dlls/oleaut32/typelib16.c b/dlls/typelib.dll16/typelib.c
similarity index 91%
rename from dlls/oleaut32/typelib16.c
rename to dlls/typelib.dll16/typelib.c
index a7b2639..bf733ae 100644
--- a/dlls/oleaut32/typelib16.c
+++ b/dlls/typelib.dll16/typelib.c
@@ -33,11 +33,11 @@
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
+#include "wine/winbase16.h"
#include "winreg.h"
#include "winuser.h"
-
#include "objbase.h"
-#include "ole2disp.h"
+#include "oleauto.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(ole);
@@ -75,13 +75,14 @@ QueryPathOfRegTypeLib16(
WORD wMaj, /* [in] Major version */
WORD wMin, /* [in] Minor version */
LCID lcid, /* [in] Locale Id */
- LPBSTR16 path) /* [out] Destination for the registry key name */
+ SEGPTR *path) /* [out] Destination for the registry key name */
{
char xguid[80];
char typelibkey[100],pathname[260];
LONG plen;
+ char *ret;
- TRACE("\n");
+ TRACE("\n");
if (HIWORD(guid)) {
sprintf( typelibkey, "SOFTWARE\\Classes\\Typelib\\{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\\%d.%d\\%x\\win16",
@@ -102,7 +103,10 @@ QueryPathOfRegTypeLib16(
FIXME("key %s not found\n",typelibkey);
return E_FAIL;
}
- *path = SysAllocString16(pathname);
+ ret = HeapAlloc( GetProcessHeap(), 0, strlen(pathname) + 1 );
+ if (!ret) return E_FAIL;
+ strcpy( ret, pathname );
+ *path = MapLS(ret);
return S_OK;
}
@@ -130,6 +134,14 @@ HRESULT WINAPI LoadTypeLib16(
return E_FAIL;
}
+/***********************************************************************
+ * LHashValOfNameSys (TYPELIB.4)
+ */
+ULONG WINAPI LHashValOfNameSys16( SYSKIND skind, LCID lcid, LPCSTR lpStr)
+{
+ return LHashValOfNameSysA( skind, lcid, lpStr );
+}
+
/****************************************************************************
* OaBuildVersion (TYPELIB.15)
*
diff --git a/dlls/oleaut32/typelib.spec b/dlls/typelib.dll16/typelib.dll16.spec
similarity index 85%
rename from dlls/oleaut32/typelib.spec
rename to dlls/typelib.dll16/typelib.dll16.spec
index c994288..10f5d4c 100644
--- a/dlls/oleaut32/typelib.spec
+++ b/dlls/typelib.dll16/typelib.dll16.spec
@@ -1,6 +1,6 @@
2 stub CREATETYPELIB
3 pascal LoadTypeLib(ptr ptr) LoadTypeLib16
-4 pascal LHashValOfNameSys(word long str) LHashValOfNameSysA
+4 pascal LHashValOfNameSys(word long str) LHashValOfNameSys16
5 stub _IID_ICREATETYPEINFO
6 stub _IID_ICREATETYPELIB
7 stub _IID_ITYPECOMP
More information about the wine-cvs
mailing list