Problem with InstallShield (Was Re: [Bug 629] Changed - Problem with InstallShield: ole:CoTreatAsClass(stub), ole:CoGetClassObject)

Marcus Meissner marcus at jet.franken.de
Mon May 6 13:58:27 CDT 2002


On Mon, May 06, 2002 at 12:54:14PM -0400, Michael Cardenas wrote:
> yes, I'd like to know what the hack was also!
> 
> On Mon, May 06, 2002 at 09:37:02PM +0200, Uwe Bonnes wrote:
> > >>>>> "Ove" == Ove Kaaven <ovehk at ping.uio.no> writes:
> >     Ove> official Wine tree without, say, half a man-year of work. There's
> >     Ove> an ugly hack (an one-liner) to make it work (in conjunction with a
> >     Ove> stdole32.tlb file from real Windows), but since Alexandre never yet
> ...
> > Could you please republish that hack?
> > 
> > And Alexandre could perhaps reconsider.

Basically the "1 ||" below is enough. Just more debug output in here.

Ciao, Marcus

Index: typelib.c
===================================================================
RCS file: /home/wine/wine/dlls/oleaut32/typelib.c,v
retrieving revision 1.65
diff -u -r1.65 typelib.c
--- typelib.c	1 May 2002 18:13:18 -0000	1.65
+++ typelib.c	6 May 2002 18:45:13 -0000
@@ -468,10 +468,36 @@
 		TYPEATTR *tattr = NULL;
 		ITypeInfo_GetTypeAttr(tinfo, &tattr);
 		if (tattr) {
-		    TRACE_(typelib)("guid=%s, flags=%04x\n",
+		    TRACE_(typelib)("guid=%s, flags=%04x (",
 				    debugstr_guid(&tattr->guid),
 				    tattr->wTypeFlags);
-		    if (tattr->wTypeFlags & TYPEFLAG_FOLEAUTOMATION) {
+		    if (TRACE_ON(typelib)) {
+#define XX(x) if (TYPEFLAG_##x & tattr->wTypeFlags) MESSAGE(#x"|");
+			XX(FAPPOBJECT);
+			XX(FCANCREATE);
+			XX(FLICENSED);
+			XX(FPREDECLID);
+			XX(FHIDDEN);
+			XX(FCONTROL);
+			XX(FDUAL);
+			XX(FNONEXTENSIBLE);
+			XX(FOLEAUTOMATION);
+			XX(FRESTRICTED);
+			XX(FAGGREGATABLE);
+			XX(FREPLACEABLE);
+			XX(FDISPATCHABLE);
+			XX(FREVERSEBIND);
+			XX(FPROXY);
+#undef XX
+			MESSAGE("\n");
+		    }
+		    /*
+		     * FIXME: The 1 is just here until we implement rpcrt4
+		     *        stub/proxy handling. Until then it helps IShield
+		     *        v6 to work.
+		     */
+		    if (1 || (tattr->wTypeFlags & TYPEFLAG_FOLEAUTOMATION))
+		    {
 			/* register interface<->typelib coupling */
 			StringFromGUID2(&tattr->guid, guid, 80);
 			guidA = HEAP_strdupWtoA(GetProcessHeap(), 0, guid);



More information about the wine-devel mailing list