Commit da409d6a authored by Vincent Povirk's avatar Vincent Povirk Committed by Alexandre Julliard

oleaut32: Return type mismatch errors in ITypeLibComp_fnBind.

parent 4f20455e
......@@ -150,7 +150,7 @@ static void test_TypeComp(void)
/* test getting a function within a TKIND_MODULE with INVOKE_PROPERTYGET */
ulHash = LHashValOfNameSys(SYS_WIN32, LOCALE_NEUTRAL, wszSavePicture);
hr = ITypeComp_Bind(pTypeComp, wszSavePicture, ulHash, INVOKE_PROPERTYGET, &pTypeInfo, &desckind, &bindptr);
todo_wine ok(hr == TYPE_E_TYPEMISMATCH,
ok(hr == TYPE_E_TYPEMISMATCH,
"ITypeComp_Bind should have failed with TYPE_E_TYPEMISMATCH instead of 0x%08x\n",
hr);
......
......@@ -4722,6 +4722,7 @@ static HRESULT WINAPI ITypeLibComp_fnBind(
{
ITypeLibImpl *This = impl_from_ITypeComp(iface);
ITypeInfoImpl *pTypeInfo;
int typemismatch=0;
TRACE("(%s, 0x%x, 0x%x, %p, %p, %p)\n", debugstr_w(szName), lHash, wFlags, ppTInfo, pDescKind, pBindPtr);
......@@ -4761,6 +4762,8 @@ static HRESULT WINAPI ITypeLibComp_fnBind(
TRACE("found in module or in enum: %s\n", debugstr_w(szName));
return S_OK;
}
else if (hr == TYPE_E_TYPEMISMATCH)
typemismatch = 1;
}
if ((pTypeInfo->TypeAttr.typekind == TKIND_COCLASS) &&
......@@ -4833,11 +4836,21 @@ static HRESULT WINAPI ITypeLibComp_fnBind(
ITypeInfo_AddRef(*ppTInfo);
return S_OK;
}
else if (hr == TYPE_E_TYPEMISMATCH)
typemismatch = 1;
}
}
if (typemismatch)
{
TRACE("type mismatch %s\n", debugstr_w(szName));
return TYPE_E_TYPEMISMATCH;
}
else
{
TRACE("name not found %s\n", debugstr_w(szName));
return S_OK;
}
}
static HRESULT WINAPI ITypeLibComp_fnBindType(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment