[ros-dev] Msi.dll was Re: working together on stdole.tlb and a end to dcom9x

James Tabor jimtabor at adsl-64-217-116-74.dsl.hstntx.swbell.net
Tue Nov 30 16:54:35 CET 2004


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 at 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
> 
> 
-------------- next part --------------
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"
-------------- next part --------------
# $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
-------------- next part --------------
# $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


More information about the Ros-dev mailing list