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