PATCH: warn if missing stdole32.tlb

Marcus Meissner marcus at jet.franken.de
Tue Jan 21 01:43:10 CST 2003


Hi,

Ciao, Marcus

Changelog:
	Print a large failure message if we try to load stdole32.tlb and fail.

Index: dlls/oleaut32/typelib.c
===================================================================
RCS file: /home/wine/wine/dlls/oleaut32/typelib.c,v
retrieving revision 1.88
diff -u -u -r1.88 typelib.c
--- dlls/oleaut32/typelib.c	11 Jan 2003 20:58:35 -0000	1.88
+++ dlls/oleaut32/typelib.c	21 Jan 2003 07:42:10 -0000
@@ -284,8 +284,8 @@
     WCHAR *pIndexStr;
     HRESULT res;
     INT index = 1;
-    TRACE("(%s,%d,%p)\n",debugstr_w(szFile), regkind, pptLib);
 
+    TRACE("(%s,%d,%p)\n",debugstr_w(szFile), regkind, pptLib);
     if(!SearchPathW(NULL,szFile,NULL,sizeof(szPath)/sizeof(WCHAR),szPath,
 		    NULL)) {
 
@@ -301,8 +301,29 @@
 	        return TYPE_E_CANTLOADLIBRARY;
 	    if (GetFileAttributesW(szFileCopy) & FILE_ATTRIBUTE_DIRECTORY)
 		return TYPE_E_CANTLOADLIBRARY;
-	} else
+	} else {
+	    WCHAR tstpath[260];
+	    WCHAR stdole32tlb[] = { 's','t','d','o','l','e','3','2','.','t','l','b',0 };
+	    int i;
+
+	    lstrcpyW(tstpath,szFile);
+	    CharLowerW(tstpath);
+	    for (i=0;i<strlenW(tstpath);i++) {
+		if (tstpath[i] == 's') {
+		    if (!strcmpW(tstpath+i,stdole32tlb)) {
+		    	MESSAGE("\n");
+		    	MESSAGE("**************************************************************************\n");
+		    	MESSAGE("You must copy a 'stdole32.tlb' file to your Windows\\System directory!\n");
+		    	MESSAGE("You can get one from a Windows installation, or look for the DCOM95 package\n");
+		    	MESSAGE("on the Microsoft Download Pages.\n");
+		    	MESSAGE("**************************************************************************\n");
+			break;
+		    }
+		}
+	    }
+	    FIXME("Wanted to load %s as typelib, but file was not found.\n",debugstr_w(szFile));
 	    return TYPE_E_CANTLOADLIBRARY;
+	}
     }
 
     TRACE("File %s index %d\n", debugstr_w(szPath), index);



More information about the wine-patches mailing list