Wow!
To complete the port for msi.dll, I need LoadTypeLib, RegisterTypeLib and
ITypeLib_Release. So, is stdole32 a "32 bit" replacement for Wine typelib
oleaut32 functions? I see only CreateTypeLib2 in the file.
Thanks,
James
ps.
I can compile msi w/o those functions, ha! just comment them out. So here
is a patch and makefiles, just remove the "msi-" and go.
Steven Edwards wrote:
Hi Sam,
--- Sam Lauber <sam124(a)operamail.com> wrote:
I tried it with MS mktyplib (with Wine DLLs).
Strangly, it produced
the exact same FIXMEs that the C program generated, but generated a
diffrent typelib. And more then two bytes differed. The two typelibs
are attached. I'll try it with InstallShield.
Try this one
http://www.volny.cz/xnavara/stdole32.c
Thanks
Steven
Only in /root/wine/wine/dlls/msi: .cvsignore
Only in /root/wine/wine/dlls/msi: CVS
Only in ./: Makefile
Only in ./: Makefile.ros-template
diff -u /root/wine/wine/dlls/msi/action.c ./action.c
--- /root/wine/wine/dlls/msi/action.c 2004-10-27 20:43:05.000000000 -0500
+++ ./action.c 2004-10-30 12:14:17.000000000 -0500
@@ -28,6 +28,7 @@
#include <stdarg.h>
#include <stdio.h>
+#include <fcntl.h>
#define COBJMACROS
@@ -39,7 +40,7 @@
#include "fdi.h"
#include "msi.h"
#include "msiquery.h"
-#include "msvcrt/fcntl.h"
+//#include "msvcrt/fcntl.h"
#include "objbase.h"
#include "objidl.h"
#include "msipriv.h"
@@ -3477,7 +3478,7 @@
continue;
}
- res = LoadTypeLib(package->files[index].TargetPath,&ptLib);
+// res = LoadTypeLib(package->files[index].TargetPath,&ptLib);
if (SUCCEEDED(res))
{
WCHAR help[MAX_PATH];
@@ -3488,7 +3489,7 @@
resolve_folder(package,helpid,help,FALSE,FALSE,NULL);
- res = RegisterTypeLib(ptLib,package->files[index].TargetPath,help);
+// res = RegisterTypeLib(ptLib,package->files[index].TargetPath,help);
if (!SUCCEEDED(res))
ERR("Failed to register type library %s\n",
debugstr_w(package->files[index].TargetPath));
@@ -3503,8 +3504,9 @@
debugstr_w(package->files[index].TargetPath));
}
- if (ptLib)
- ITypeLib_Release(ptLib);
+ if (ptLib){
+ //ITypeLib_Release(ptLib);
+ }
}
else
ERR("Failed to load type library %s\n",
Only in ./: patch.diff
diff -u /root/wine/wine/dlls/msi/suminfo.c ./suminfo.c
--- /root/wine/wine/dlls/msi/suminfo.c 2004-10-18 13:20:12.000000000 -0500
+++ ./suminfo.c 2004-10-30 00:09:12.000000000 -0500
@@ -23,6 +23,8 @@
#define COBJMACROS
#define NONAMELESSUNION
+#define PRSPEC_PROPID (1)
+
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
# $Id: Makefile,v 1.12 2004/02/25 20:00:41 sedwards Exp $
PATH_TO_TOP = ../..
TARGET_TYPE = winedll
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# $Id: Makefile.ros-template
TARGET_NAME = msi
TARGET_OBJECTS = @C_SRCS@ @EXTRA_OBJS@
TARGET_CFLAGS = -D__REACTOS__ @EXTRADEFS@
TARGET_SDKLIBS = @IMPORTS@ libwine.a wine_uuid.a ntdll.a
TARGET_BASE = $(TARGET_BASE_LIB_WINMM)
TARGET_RC_SRCS = @RC_SRCS@
TARGET_RC_BINSRC = @RC_BINSRC@
TARGET_RC_BINARIES = @RC_BINARIES@
TARGET_CLEAN = *.tab.c *.tab.h
default: all
DEP_OBJECTS = $(TARGET_OBJECTS)
include $(TOOLS_PATH)/depend.mk
#
# Bison is requiered for building msi.dll. If MingW32 for windows,
# download bison from
http://gnuwin32.sourceforge.net/
# Make sure bison.exe is placed in your command path for execution.
#
#
sql.tab.c sql.tab.h: sql.y
bison -p SQL_ -d ./sql.y -o sql.tab.c
cond.tab.c cond.tab.h: cond.y
bison -p COND_ -d ./cond.y -o cond.tab.c