From b5e0f002fb4bdec802aa8e23e50c39ee2ce4316a Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Wed, 9 Sep 2009 11:51:29 -0500 Subject: [PATCH] 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 = -- 1.6.3.3