From: "Gabriel Ivăncescu" Subject: [PATCH v4 8/9] jscript: Implement ScriptTypeComp_BindType. Message-Id: <71d57890d654ca93c06c4164058962826bd6596f.1576155193.git.gabrielopcode@gmail.com> Date: Thu, 12 Dec 2019 14:54:02 +0200 In-Reply-To: <5084914ccc51ae6f0d8783c7acf623d2a996c3a3.1576155193.git.gabrielopcode@gmail.com> References: <5084914ccc51ae6f0d8783c7acf623d2a996c3a3.1576155193.git.gabrielopcode@gmail.com> Signed-off-by: Gabriel Ivăncescu --- dlls/jscript/dispex.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c index 6576605..6cc6df5 100644 --- a/dlls/jscript/dispex.c +++ b/dlls/jscript/dispex.c @@ -1069,10 +1069,25 @@ static HRESULT WINAPI ScriptTypeComp_BindType(ITypeComp *iface, LPOLESTR szName, ITypeInfo **ppTInfo, ITypeComp **ppTComp) { ScriptTypeInfo *This = ScriptTypeInfo_from_ITypeComp(iface); + ITypeInfo *disp_typeinfo; + ITypeComp *disp_typecomp; + HRESULT hr; - FIXME("(%p)->(%s %08x %p %p)\n", This, debugstr_w(szName), lHashVal, ppTInfo, ppTComp); + TRACE("(%p)->(%s %08x %p %p)\n", This, debugstr_w(szName), lHashVal, ppTInfo, ppTComp); - return E_NOTIMPL; + if (!szName || !ppTInfo || !ppTComp) + return E_INVALIDARG; + + /* Look into the inherited IDispatch */ + hr = get_dispatch_typeinfo(&disp_typeinfo); + if (FAILED(hr)) return hr; + + hr = ITypeInfo_GetTypeComp(disp_typeinfo, &disp_typecomp); + if (FAILED(hr)) return hr; + + hr = ITypeComp_BindType(disp_typecomp, szName, lHashVal, ppTInfo, ppTComp); + ITypeComp_Release(disp_typecomp); + return hr; } static const ITypeCompVtbl ScriptTypeCompVtbl = { -- 2.21.0