Module: wine Branch: master Commit: c4934ac98d08e31767dd3679959af4de516af247 URL: https://source.winehq.org/git/wine.git/?a=commit;h=c4934ac98d08e31767dd36799...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Fri May 31 17:51:03 2019 +0200
mshtml: Add IMarkupContainer interface stub.
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/mshtml/htmldoc.c | 43 +++++++++++++++++++++++++++++++++++++++++++ dlls/mshtml/mshtml_private.h | 1 + dlls/mshtml/tests/dom.c | 2 ++ 3 files changed, 46 insertions(+)
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index bb93db9..9dec890 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -4974,6 +4974,46 @@ static const IMarkupServicesVtbl MarkupServicesVtbl = { MarkupServices_EndUndoUnit };
+/********************************************************** + * IMarkupContainer implementation + */ +static inline HTMLDocument *impl_from_IMarkupContainer(IMarkupContainer *iface) +{ + return CONTAINING_RECORD(iface, HTMLDocument, IMarkupContainer_iface); +} + +static HRESULT WINAPI MarkupContainer_QueryInterface(IMarkupContainer *iface, REFIID riid, void **ppvObject) +{ + HTMLDocument *This = impl_from_IMarkupContainer(iface); + return htmldoc_query_interface(This, riid, ppvObject); +} + +static ULONG WINAPI MarkupContainer_AddRef(IMarkupContainer *iface) +{ + HTMLDocument *This = impl_from_IMarkupContainer(iface); + return htmldoc_addref(This); +} + +static ULONG WINAPI MarkupContainer_Release(IMarkupContainer *iface) +{ + HTMLDocument *This = impl_from_IMarkupContainer(iface); + return htmldoc_release(This); +} + +static HRESULT WINAPI MarkupContainer_OwningDoc(IMarkupContainer *iface, IHTMLDocument2 **ppDoc) +{ + HTMLDocument *This = impl_from_IMarkupContainer(iface); + FIXME("(%p)->(%p)\n", This, ppDoc); + return E_NOTIMPL; +} + +static const IMarkupContainerVtbl MarkupContainerVtbl = { + MarkupContainer_QueryInterface, + MarkupContainer_AddRef, + MarkupContainer_Release, + MarkupContainer_OwningDoc +}; + static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv) { *ppv = NULL; @@ -5054,6 +5094,8 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv) *ppv = &This->IProvideMultipleClassInfo_iface; else if(IsEqualGUID(&IID_IMarkupServices, riid)) *ppv = &This->IMarkupServices_iface; + else if(IsEqualGUID(&IID_IMarkupContainer, riid)) + *ppv = &This->IMarkupContainer_iface; else if(IsEqualGUID(&CLSID_CMarkup, riid)) { FIXME("(%p)->(CLSID_CMarkup %p)\n", This, ppv); *ppv = NULL; @@ -5102,6 +5144,7 @@ static void init_doc(HTMLDocument *doc, IUnknown *outer, IDispatchEx *dispex) doc->ISupportErrorInfo_iface.lpVtbl = &SupportErrorInfoVtbl; doc->IProvideMultipleClassInfo_iface.lpVtbl = &ProvideMultipleClassInfoVtbl; doc->IMarkupServices_iface.lpVtbl = &MarkupServicesVtbl; + doc->IMarkupContainer_iface.lpVtbl = &MarkupContainerVtbl;
doc->outer_unk = outer; doc->dispex = dispex; diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 9ed2e5f..7dc9367 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -624,6 +624,7 @@ struct HTMLDocument { IObjectSafety IObjectSafety_iface; IProvideMultipleClassInfo IProvideMultipleClassInfo_iface; IMarkupServices IMarkupServices_iface; + IMarkupContainer IMarkupContainer_iface;
IUnknown *outer_unk; IDispatchEx *dispex; diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index d4ef42e..8a08282 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -175,6 +175,7 @@ static const IID * const doc_node_iids[] = { &IID_IDispatchEx, &IID_IConnectionPointContainer, &IID_IInternetHostSecurityManager, + &IID_IMarkupContainer, &IID_IMarkupServices, &IID_IOleContainer, &IID_IObjectSafety, @@ -192,6 +193,7 @@ static const IID * const doc_obj_iids[] = { &IID_IDispatchEx, &IID_IConnectionPointContainer, &IID_ICustomDoc, + &IID_IMarkupContainer, &IID_IMarkupServices, &IID_IOleContainer, &IID_IObjectSafety,