Jacek Caban : mshtml: Added ICustomDoc stub implementation.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Aug 13 06:31:46 CDT 2007
Module: wine
Branch: master
Commit: 03585070657c665a07af59bc0f24aa190cc31db8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=03585070657c665a07af59bc0f24aa190cc31db8
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Aug 13 01:18:49 2007 +0200
mshtml: Added ICustomDoc stub implementation.
---
dlls/mshtml/htmldoc.c | 3 +++
dlls/mshtml/mshtml_private.h | 2 ++
dlls/mshtml/oleobj.c | 41 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 746c67a..f75d591 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -113,6 +113,9 @@ static HRESULT WINAPI HTMLDocument_QueryInterface(IHTMLDocument2 *iface, REFIID
}else if(IsEqualGUID(&IID_IPersistStreamInit, riid)) {
TRACE("(%p)->(IID_IPersistStreamInit %p)\n", This, ppvObject);
*ppvObject = PERSTRINIT(This);
+ }else if(IsEqualGUID(&IID_ICustomDoc, riid)) {
+ TRACE("(%p)->(IID_ICustomDoc %p)\n", This, ppvObject);
+ *ppvObject = CUSTOMDOC(This);
}else if(IsEqualGUID(&DIID_DispHTMLDocument, riid)) {
TRACE("(%p)->(DIID_DispHTMLDocument %p)\n", This, ppvObject);
*ppvObject = HTMLDOC(This);
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 0bd36a7..bf57b7e 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -112,6 +112,7 @@ struct HTMLDocument {
const IOleControlVtbl *lpOleControlVtbl;
const IHlinkTargetVtbl *lpHlinkTargetVtbl;
const IPersistStreamInitVtbl *lpPersistStreamInitVtbl;
+ const ICustomDocVtbl *lpCustomDocVtbl;
LONG ref;
@@ -305,6 +306,7 @@ typedef struct {
#define HLNKTARGET(x) ((IHlinkTarget*) &(x)->lpHlinkTargetVtbl)
#define CONPTCONT(x) ((IConnectionPointContainer*) &(x)->lpConnectionPointContainerVtbl)
#define PERSTRINIT(x) ((IPersistStreamInit*) &(x)->lpPersistStreamInitVtbl)
+#define CUSTOMDOC(x) ((ICustomDoc*) &(x)->lpCustomDocVtbl)
#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 2689e4c..116cbde 100644
--- a/dlls/mshtml/oleobj.c
+++ b/dlls/mshtml/oleobj.c
@@ -676,6 +676,46 @@ static const IOleControlVtbl OleControlVtbl = {
OleControl_FreezeEvents
};
+/**********************************************************
+ * ICustomDoc implementation
+ */
+
+#define CUSTOMDOC_THIS(iface) DEFINE_THIS(HTMLDocument, CustomDoc, iface)
+
+static HRESULT WINAPI CustomDoc_QueryInterface(ICustomDoc *iface, REFIID riid, void **ppv)
+{
+ HTMLDocument *This = CUSTOMDOC_THIS(iface);
+ return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppv);
+}
+
+static ULONG WINAPI CustomDoc_AddRef(ICustomDoc *iface)
+{
+ HTMLDocument *This = CUSTOMDOC_THIS(iface);
+ return IHTMLDocument2_AddRef(HTMLDOC(This));
+}
+
+static ULONG WINAPI CustomDoc_Release(ICustomDoc *iface)
+{
+ HTMLDocument *This = CUSTOMDOC_THIS(iface);
+ return IHTMLDocument_Release(HTMLDOC(This));
+}
+
+static HRESULT WINAPI CustomDoc_SetUIHandler(ICustomDoc *iface, IDocHostUIHandler *pUIHandler)
+{
+ HTMLDocument *This = CUSTOMDOC_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pUIHandler);
+ return E_NOTIMPL;
+}
+
+#undef CUSTOMDOC_THIS
+
+static const ICustomDocVtbl CustomDocVtbl = {
+ CustomDoc_QueryInterface,
+ CustomDoc_AddRef,
+ CustomDoc_Release,
+ CustomDoc_SetUIHandler
+};
+
void HTMLDocument_LockContainer(HTMLDocument *This, BOOL fLock)
{
IOleContainer *container;
@@ -697,6 +737,7 @@ void HTMLDocument_OleObj_Init(HTMLDocument *This)
This->lpOleObjectVtbl = &OleObjectVtbl;
This->lpOleDocumentVtbl = &OleDocumentVtbl;
This->lpOleControlVtbl = &OleControlVtbl;
+ This->lpCustomDocVtbl = &CustomDocVtbl;
This->usermode = UNKNOWN_USERMODE;
More information about the wine-cvs
mailing list