Alexander Morozov : mshtml: Add stub implementation of IProvideClassInfo interface.
Alexandre Julliard
julliard at winehq.org
Thu Jul 14 13:08:19 CDT 2011
Module: wine
Branch: master
Commit: c41a300f3c7eeb52a7362d7e194b8cc37a36e18a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c41a300f3c7eeb52a7362d7e194b8cc37a36e18a
Author: Alexander Morozov <amorozov at etersoft.ru>
Date: Mon Jul 11 18:27:28 2011 +0400
mshtml: Add stub implementation of IProvideClassInfo interface.
---
dlls/mshtml/htmldoc.c | 44 ++++++++++++++++++++++++++++++++++++++++++
dlls/mshtml/mshtml_private.h | 1 +
dlls/mshtml/tests/dom.c | 2 +
3 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 1ebb8eb..5ba48cd 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -1770,6 +1770,46 @@ static const IDispatchExVtbl DocDispatchExVtbl = {
DocDispatchEx_GetNameSpaceParent
};
+static inline HTMLDocument *impl_from_IProvideClassInfo(IProvideClassInfo *iface)
+{
+ return CONTAINING_RECORD(iface, HTMLDocument, IProvideClassInfo_iface);
+}
+
+static HRESULT WINAPI ProvideClassInfo_QueryInterface(IProvideClassInfo *iface,
+ REFIID riid, void **ppv)
+{
+ HTMLDocument *This = impl_from_IProvideClassInfo(iface);
+ return htmldoc_query_interface(This, riid, ppv);
+}
+
+static ULONG WINAPI ProvideClassInfo_AddRef(IProvideClassInfo *iface)
+{
+ HTMLDocument *This = impl_from_IProvideClassInfo(iface);
+ return htmldoc_addref(This);
+}
+
+static ULONG WINAPI ProvideClassInfo_Release(IProvideClassInfo *iface)
+{
+ HTMLDocument *This = impl_from_IProvideClassInfo(iface);
+ return htmldoc_release(This);
+}
+
+static HRESULT WINAPI ProvideClassInfo_GetClassInfo(IProvideClassInfo* iface,
+ ITypeInfo **ppTI)
+{
+ HTMLDocument *This = impl_from_IProvideClassInfo(iface);
+ FIXME("(%p)->(%p)\n", This, ppTI);
+ *ppTI = NULL;
+ return E_NOTIMPL;
+}
+
+static const IProvideClassInfoVtbl ProvideClassInfoVtbl = {
+ ProvideClassInfo_QueryInterface,
+ ProvideClassInfo_AddRef,
+ ProvideClassInfo_Release,
+ ProvideClassInfo_GetClassInfo
+};
+
static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
{
*ppv = NULL;
@@ -1897,6 +1937,9 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
}else if(IsEqualGUID(&IID_IObjectSafety, riid)) {
TRACE("(%p)->(IID_IObjectSafety %p)\n", This, ppv);
*ppv = &This->IObjectSafety_iface;
+ }else if(IsEqualGUID(&IID_IProvideClassInfo, riid)) {
+ TRACE("(%p)->(IID_IProvideClassInfo, %p)\n", This, ppv);
+ *ppv = &This->IProvideClassInfo_iface;
}else {
return FALSE;
}
@@ -1913,6 +1956,7 @@ static void init_doc(HTMLDocument *doc, IUnknown *unk_impl, IDispatchEx *dispex)
doc->IHTMLDocument2_iface.lpVtbl = &HTMLDocumentVtbl;
doc->IDispatchEx_iface.lpVtbl = &DocDispatchExVtbl;
doc->ISupportErrorInfo_iface.lpVtbl = &SupportErrorInfoVtbl;
+ doc->IProvideClassInfo_iface.lpVtbl = &ProvideClassInfoVtbl;
doc->unk_impl = unk_impl;
doc->dispex = dispex;
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index c98f0af..71afb8f 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -383,6 +383,7 @@ struct HTMLDocument {
IObjectWithSite IObjectWithSite_iface;
IOleContainer IOleContainer_iface;
IObjectSafety IObjectSafety_iface;
+ IProvideClassInfo IProvideClassInfo_iface;
IUnknown *unk_impl;
IDispatchEx *dispex;
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index cd4dad9..21f183c 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -128,6 +128,7 @@ static const IID * const doc_node_iids[] = {
&IID_IInternetHostSecurityManager,
&IID_IOleContainer,
&IID_IObjectSafety,
+ &IID_IProvideClassInfo,
NULL
};
@@ -142,6 +143,7 @@ static const IID * const doc_obj_iids[] = {
&IID_ICustomDoc,
&IID_IOleContainer,
&IID_IObjectSafety,
+ &IID_IProvideClassInfo,
NULL
};
More information about the wine-cvs
mailing list