Jacek Caban : ieframe: Added IProvideClassInfo::GetClassInfo implementation .

Alexandre Julliard julliard at winehq.org
Sat Feb 11 10:28:39 CST 2012


Module: wine
Branch: master
Commit: c6a8e9a5b8e4bf5327034025a430853cf46d1988
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c6a8e9a5b8e4bf5327034025a430853cf46d1988

Author: Jacek Caban <jacek at 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)




More information about the wine-cvs mailing list