Vincent Povirk : oleaut32: Implement ITypeLibComp::BindType.
Alexandre Julliard
julliard at winehq.org
Thu Sep 10 09:07:47 CDT 2009
Module: wine
Branch: master
Commit: 9abdf54cb753cdfb85979d84aa00e6e35a52c737
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9abdf54cb753cdfb85979d84aa00e6e35a52c737
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Wed Sep 9 11:51:29 2009 -0500
oleaut32: Implement ITypeLibComp::BindType.
---
dlls/oleaut32/typelib.c | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 887c6be..1484a00 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -4835,8 +4835,29 @@ static HRESULT WINAPI ITypeLibComp_fnBindType(
ITypeInfo ** ppTInfo,
ITypeComp ** ppTComp)
{
- FIXME("(%s, %x, %p, %p): stub\n", debugstr_w(szName), lHash, ppTInfo, ppTComp);
- return E_NOTIMPL;
+ ITypeLibImpl *This = impl_from_ITypeComp(iface);
+ ITypeInfoImpl *pTypeInfo;
+
+ TRACE("(%s, %x, %p, %p)\n", debugstr_w(szName), lHash, ppTInfo, ppTComp);
+
+ for (pTypeInfo = This->pTypeInfo; pTypeInfo; pTypeInfo = pTypeInfo->next)
+ {
+ /* FIXME: should use lHash to do the search */
+ if (pTypeInfo->Name && !strcmpW(pTypeInfo->Name, szName))
+ {
+ TRACE("returning %p\n", pTypeInfo);
+ *ppTInfo = (ITypeInfo *)&pTypeInfo->lpVtbl;
+ ITypeInfo_AddRef(*ppTInfo);
+ *ppTComp = (ITypeComp *)&pTypeInfo->lpVtblTypeComp;
+ ITypeComp_AddRef(*ppTComp);
+ return S_OK;
+ }
+ }
+
+ TRACE("not found\n");
+ *ppTInfo = NULL;
+ *ppTComp = NULL;
+ return S_OK;
}
static const ITypeCompVtbl tlbtcvt =
More information about the wine-cvs
mailing list