PATCH: ITypeInfo::GetDllEntry
Marcus Meissner
marcus at jet.franken.de
Sun Nov 10 15:44:06 CST 2002
Hi,
This implements ITypeInfo::GetDllEntry to some degree. I do not know
yet how to find out the Dll Name.
Ciao, Marcus
Changelog:
Added partial implementation of ITypeInfo::GetDllEntry().
Index: typelib.c
===================================================================
RCS file: /home/wine/wine/dlls/oleaut32/typelib.c,v
retrieving revision 1.78
diff -u -r1.78 typelib.c
--- typelib.c 8 Nov 2002 18:51:28 -0000 1.78
+++ typelib.c 10 Nov 2002 21:35:57 -0000
@@ -4469,7 +4475,34 @@
WORD *pwOrdinal)
{
ICOM_THIS( ITypeInfoImpl, iface);
- FIXME("(%p) stub!\n", This);
+ TLBFuncDesc *pFDesc;
+
+ FIXME("(%p, memid %lx, %d, %p, %p, %p), partial stub!\n", This, memid, invKind, pBstrDllName, pBstrName, pwOrdinal);
+
+ for(pFDesc=This->funclist; pFDesc; pFDesc=pFDesc->next)
+ if(pFDesc->funcdesc.memid==memid){
+ dump_TypeInfo(This);
+ dump_TLBFuncDescOne(pFDesc);
+
+ /* FIXME: This is wrong, but how do you find that out? */
+ if (pBstrDllName) {
+ const WCHAR oleaut32W[] = {'O','L','E','A','U','T','3','2','.','D','L','L',0};
+ *pBstrDllName = SysAllocString(oleaut32W);
+ }
+
+ if (HIWORD(pFDesc->Entry) && (pFDesc->Entry != (void*)-1)) {
+ if (pBstrName)
+ *pBstrName = SysAllocString(pFDesc->Entry);
+ if (pwOrdinal)
+ *pwOrdinal = -1;
+ return S_OK;
+ }
+ if (pBstrName)
+ *pBstrName = NULL;
+ if (pwOrdinal)
+ *pwOrdinal = (DWORD)pFDesc->Entry;
+ return S_OK;
+ }
return E_FAIL;
}
More information about the wine-patches
mailing list