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