Module: wine Branch: master Commit: c6a8e9a5b8e4bf5327034025a430853cf46d1988 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c6a8e9a5b8e4bf5327034025a4...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Feb 10 12:36:53 2012 +0100
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 30b8871..72798d6 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 ac3e34d..ae787a9 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 cbdff92..56cd663 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)