From c41a300f3c7eeb52a7362d7e194b8cc37a36e18a Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Mon, 11 Jul 2011 18:27:28 +0400 Subject: [PATCH] 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(+) diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index 1ebb8eb33e0..5ba48cd60cf 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 c98f0af6edd..71afb8f71f5 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 cd4dad90122..21f183c7bfe 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 }; -- 2.11.4.GIT