Piotr Caban : mshtml: Added IObjectWithSite stubs.
Alexandre Julliard
julliard at winehq.org
Wed Dec 16 09:41:37 CST 2009
Module: wine
Branch: master
Commit: 17bec80f71f04115cfa80d8785aa516cab132df0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=17bec80f71f04115cfa80d8785aa516cab132df0
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Dec 15 23:46:24 2009 +0100
mshtml: Added IObjectWithSite stubs.
---
dlls/mshtml/htmldoc.c | 3 ++
dlls/mshtml/mshtml_private.h | 2 +
dlls/mshtml/oleobj.c | 49 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 57d4fc6..84f6cc8 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -1748,6 +1748,9 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
}else if(IsEqualGUID(&IID_IMarshal, riid)) {
TRACE("(%p)->(IID_IMarshal %p) returning NULL\n", This, ppv);
*ppv = NULL;
+ }else if(IsEqualGUID(&IID_IObjectWithSite, riid)) {
+ TRACE("(%p)->(IID_IObjectWithSite %p)\n", This, ppv);
+ *ppv = OBJSITE(This);
}else {
return FALSE;
}
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index afd0bff..98abec2 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -323,6 +323,7 @@ struct HTMLDocument {
const IPersistStreamInitVtbl *lpPersistStreamInitVtbl;
const IDispatchExVtbl *lpIDispatchExVtbl;
const ISupportErrorInfoVtbl *lpSupportErrorInfoVtbl;
+ const IObjectWithSiteVtbl *lpObjectWithSiteVtbl;
IUnknown *unk_impl;
IDispatchEx *dispex;
@@ -577,6 +578,7 @@ struct HTMLDocumentNode {
#define PERSTRINIT(x) ((IPersistStreamInit*) &(x)->lpPersistStreamInitVtbl)
#define PERSISTHIST(x) ((IPersistHistory*) &(x)->lpPersistHistoryVtbl)
#define CUSTOMDOC(x) ((ICustomDoc*) &(x)->lpCustomDocVtbl)
+#define OBJSITE(x) ((IObjectWithSite*) &(x)->lpObjectWithSiteVtbl)
#define NSWBCHROME(x) ((nsIWebBrowserChrome*) &(x)->lpWebBrowserChromeVtbl)
#define NSCML(x) ((nsIContextMenuListener*) &(x)->lpContextMenuListenerVtbl)
diff --git a/dlls/mshtml/oleobj.c b/dlls/mshtml/oleobj.c
index 872d766..3dec3dc 100644
--- a/dlls/mshtml/oleobj.c
+++ b/dlls/mshtml/oleobj.c
@@ -732,6 +732,54 @@ static const IOleControlVtbl OleControlVtbl = {
OleControl_FreezeEvents
};
+/**********************************************************
+ * IObjectWithSite implementation
+ */
+
+#define OBJSITE_THIS(iface) DEFINE_THIS(HTMLDocument, ObjectWithSite, iface)
+
+static HRESULT WINAPI ObjectWithSite_QueryInterface(IObjectWithSite *iface, REFIID riid, void **ppvObject)
+{
+ HTMLDocument *This = OBJSITE_THIS(iface);
+ return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppvObject);
+}
+
+static ULONG WINAPI ObjectWithSite_AddRef(IObjectWithSite *iface)
+{
+ HTMLDocument *This = OBJSITE_THIS(iface);
+ return IHTMLDocument2_AddRef(HTMLDOC(This));
+}
+
+static ULONG WINAPI ObjectWithSite_Release(IObjectWithSite *iface)
+{
+ HTMLDocument *This = OBJSITE_THIS(iface);
+ return IHTMLDocument2_Release(HTMLDOC(This));
+}
+
+static HRESULT WINAPI ObjectWithSite_SetSite(IObjectWithSite *iface, IUnknown *pUnkSite)
+{
+ HTMLDocument *This = OBJSITE_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pUnkSite);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ObjectWithSite_GetSite(IObjectWithSite* iface, REFIID riid, PVOID *ppvSite)
+{
+ HTMLDocument *This = OBJSITE_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, ppvSite);
+ return E_NOTIMPL;
+}
+
+#undef OBJSITE_THIS
+
+static const IObjectWithSiteVtbl ObjectWithSiteVtbl = {
+ ObjectWithSite_QueryInterface,
+ ObjectWithSite_AddRef,
+ ObjectWithSite_Release,
+ ObjectWithSite_SetSite,
+ ObjectWithSite_GetSite
+};
+
void HTMLDocument_LockContainer(HTMLDocumentObj *This, BOOL fLock)
{
IOleContainer *container;
@@ -753,4 +801,5 @@ void HTMLDocument_OleObj_Init(HTMLDocument *This)
This->lpOleObjectVtbl = &OleObjectVtbl;
This->lpOleDocumentVtbl = &OleDocumentVtbl;
This->lpOleControlVtbl = &OleControlVtbl;
+ This->lpObjectWithSiteVtbl = &ObjectWithSiteVtbl;
}
More information about the wine-cvs
mailing list