From c6a8e9a5b8e4bf5327034025a430853cf46d1988 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 10 Feb 2012 12:36:53 +0100 Subject: [PATCH] ieframe: Added IProvideClassInfo::GetClassInfo implementation. --- dlls/ieframe/classinfo.c | 14 +++++++++++--- dlls/ieframe/ieframe.h | 4 ++++ dlls/ieframe/ieframe_main.c | 2 ++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/dlls/ieframe/classinfo.c b/dlls/ieframe/classinfo.c index 30b887117d5..72798d6c7c8 100644 --- a/dlls/ieframe/classinfo.c +++ b/dlls/ieframe/classinfo.c @@ -52,11 +52,19 @@ static ULONG WINAPI ProvideClassInfo_Release(IProvideClassInfo2 *iface) return IWebBrowser_Release(&This->IWebBrowser2_iface); } -static HRESULT WINAPI ProvideClassInfo_GetClassInfo(IProvideClassInfo2 *iface, LPTYPEINFO *ppTI) +static HRESULT WINAPI ProvideClassInfo_GetClassInfo(IProvideClassInfo2 *iface, ITypeInfo **ppTI) { WebBrowser *This = impl_from_IProvideClassInfo2(iface); - FIXME("(%p)->(%p)\n", This, ppTI); - return E_NOTIMPL; + HRESULT hres; + + TRACE("(%p)->(%p)\n", This, ppTI); + + hres = get_typeinfo(This->version > 1 ? WebBrowser_tid : WebBrowser_V1_tid, ppTI); + if(FAILED(hres)) + return hres; + + ITypeInfo_AddRef(*ppTI); + return S_OK; } static HRESULT WINAPI ProvideClassInfo_GetGUID(IProvideClassInfo2 *iface, diff --git a/dlls/ieframe/ieframe.h b/dlls/ieframe/ieframe.h index ac3e34d93f3..ae787a92607 100644 --- a/dlls/ieframe/ieframe.h +++ b/dlls/ieframe/ieframe.h @@ -284,12 +284,16 @@ void register_iewindow_class(void) DECLSPEC_HIDDEN; void unregister_iewindow_class(void) DECLSPEC_HIDDEN; #define TID_LIST \ + XCLSID(WebBrowser) \ + XCLSID(WebBrowser_V1) \ XIID(IWebBrowser2) typedef enum { #define XIID(iface) iface ## _tid, +#define XCLSID(class) class ## _tid, TID_LIST #undef XIID +#undef XCLSID LAST_tid } tid_t; diff --git a/dlls/ieframe/ieframe_main.c b/dlls/ieframe/ieframe_main.c index cbdff92e241..56cd6632083 100644 --- a/dlls/ieframe/ieframe_main.c +++ b/dlls/ieframe/ieframe_main.c @@ -59,8 +59,10 @@ static ITypeInfo *typeinfos[LAST_tid]; static REFIID tid_ids[] = { #define XIID(iface) &IID_ ## iface, +#define XCLSID(class) &CLSID_ ## class, TID_LIST #undef XIID +#undef XCLSID }; static HRESULT load_typelib(void) -- 2.11.4.GIT