MSHTML: Added stub implementation of IOleInPlaceObjectWindowless
Jacek Caban
jack at itma.pwr.wroc.pl
Mon Jun 27 14:02:02 CDT 2005
I know I send much stubs...
Changelog:
Added stub implementation of IOleInPlaceObjectWindowless
-------------- next part --------------
Index: dlls/mshtml/Makefile.in
===================================================================
RCS file: /home/wine/wine/dlls/mshtml/Makefile.in,v
retrieving revision 1.14
diff -u -p -r1.14 Makefile.in
--- dlls/mshtml/Makefile.in 27 Jun 2005 11:19:49 -0000 1.14
+++ dlls/mshtml/Makefile.in 27 Jun 2005 18:56:36 -0000
@@ -12,6 +12,7 @@ C_SRCS = \
htmldoc.c \
main.c \
oleobj.c \
+ olewnd.c \
persist.c \
protocol.c \
view.c
Index: dlls/mshtml/htmldoc.c
===================================================================
RCS file: /home/wine/wine/dlls/mshtml/htmldoc.c,v
retrieving revision 1.8
diff -u -p -r1.8 htmldoc.c
--- dlls/mshtml/htmldoc.c 23 Jun 2005 16:44:43 -0000 1.8
+++ dlls/mshtml/htmldoc.c 27 Jun 2005 18:56:36 -0000
@@ -85,6 +85,15 @@ static HRESULT WINAPI HTMLDocument_Query
}else if(IsEqualGUID(&IID_IViewObject2, riid)) {
TRACE("(%p)->(IID_IViewObject2, %p)\n", This, ppvObject);
*ppvObject = VIEWOBJ2(This);
+ }else if(IsEqualGUID(&IID_IOleWindow, riid)) {
+ TRACE("(%p)->(IID_IOleWindow, %p)\n", This, ppvObject);
+ *ppvObject = OLEWIN(This);
+ }else if(IsEqualGUID(&IID_IOleInPlaceObject, riid)) {
+ TRACE("(%p)->(IID_IOleInPlaceObject, %p)\n", This, ppvObject);
+ *ppvObject = INPLACEOBJ(This);
+ }else if(IsEqualGUID(&IID_IOleInPlaceObjectWindowless, riid)) {
+ TRACE("(%p)->(IID_IOleInPlaceObjectWindowless, %p)\n", This, ppvObject);
+ *ppvObject = INPLACEWIN(This);
}
if(*ppvObject) {
@@ -959,6 +968,7 @@ HRESULT HTMLDocument_Create(IUnknown *pU
HTMLDocument_Persist_Init(ret);
HTMLDocument_OleObj_Init(ret);
HTMLDocument_View_Init(ret);
+ HTMLDocument_Window_Init(ret);
return hres;
}
Index: dlls/mshtml/mshtml_private.h
===================================================================
RCS file: /home/wine/wine/dlls/mshtml/mshtml_private.h,v
retrieving revision 1.9
diff -u -p -r1.9 mshtml_private.h
--- dlls/mshtml/mshtml_private.h 27 Jun 2005 09:50:56 -0000 1.9
+++ dlls/mshtml/mshtml_private.h 27 Jun 2005 18:56:36 -0000
@@ -17,15 +17,16 @@
*/
typedef struct {
- const IHTMLDocument2Vtbl *lpHTMLDocument2Vtbl;
- const IPersistMonikerVtbl *lpPersistMonikerVtbl;
- const IPersistFileVtbl *lpPersistFileVtbl;
- const IMonikerPropVtbl *lpMonikerPropVtbl;
- const IOleObjectVtbl *lpOleObjectVtbl;
- const IOleDocumentVtbl *lpOleDocumentVtbl;
- const IOleDocumentViewVtbl *lpOleDocumentViewVtbl;
- const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl;
- const IViewObject2Vtbl *lpViewObject2Vtbl;
+ const IHTMLDocument2Vtbl *lpHTMLDocument2Vtbl;
+ const IPersistMonikerVtbl *lpPersistMonikerVtbl;
+ const IPersistFileVtbl *lpPersistFileVtbl;
+ const IMonikerPropVtbl *lpMonikerPropVtbl;
+ const IOleObjectVtbl *lpOleObjectVtbl;
+ const IOleDocumentVtbl *lpOleDocumentVtbl;
+ const IOleDocumentViewVtbl *lpOleDocumentViewVtbl;
+ const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl;
+ const IViewObject2Vtbl *lpViewObject2Vtbl;
+ const IOleInPlaceObjectWindowlessVtbl *lpOleInPlaceObjectWindowlessVtbl;
ULONG ref;
@@ -36,23 +37,29 @@ typedef struct {
HWND hwnd;
} HTMLDocument;
-#define HTMLDOC(x) ((IHTMLDocument2*) &(x)->lpHTMLDocument2Vtbl)
-#define PERSIST(x) ((IPersist*) &(x)->lpPersistFileVtbl)
-#define PERSISTMON(x) ((IPersistMoniker*) &(x)->lpPersistMonikerVtbl)
-#define PERSISTFILE(x) ((IPersistFile*) &(x)->lpPersistFileVtbl)
-#define MONPROP(x) ((IMonikerProp*) &(x)->lpMonikerPropVtbl)
-#define OLEOBJ(x) ((IOleObject*) &(x)->lpOleObjectVtbl)
-#define OLEDOC(x) ((IOleDocument*) &(x)->lpOleDocumentVtbl)
-#define DOCVIEW(x) ((IOleDocumentView*) &(x)->lpOleDocumentViewVtbl)
-#define ACTOBJ(x) ((IOleInPlaceActiveObject*) &(x)->lpOleInPlaceActiveObjectVtbl)
-#define VIEWOBJ(x) ((IViewObject*) &(x)->lpViewObject2Vtbl)
-#define VIEWOBJ2(x) ((IViewObject2*) &(x)->lpViewObject2Vtbl)
+#define HTMLDOC(x) ((IHTMLDocument2*) &(x)->lpHTMLDocument2Vtbl)
+#define PERSIST(x) ((IPersist*) &(x)->lpPersistFileVtbl)
+#define PERSISTMON(x) ((IPersistMoniker*) &(x)->lpPersistMonikerVtbl)
+#define PERSISTFILE(x) ((IPersistFile*) &(x)->lpPersistFileVtbl)
+#define MONPROP(x) ((IMonikerProp*) &(x)->lpMonikerPropVtbl)
+#define OLEOBJ(x) ((IOleObject*) &(x)->lpOleObjectVtbl)
+#define OLEDOC(x) ((IOleDocument*) &(x)->lpOleDocumentVtbl)
+#define DOCVIEW(x) ((IOleDocumentView*) &(x)->lpOleDocumentViewVtbl)
+#define OLEWIN(x) ((IOleWindow*) &(x)->lpOleInPlaceActiveObjectVtbl)
+#define ACTOBJ(x) ((IOleInPlaceActiveObject*) &(x)->lpOleInPlaceActiveObjectVtbl)
+#define VIEWOBJ(x) ((IViewObject*) &(x)->lpViewObject2Vtbl)
+#define VIEWOBJ2(x) ((IViewObject2*) &(x)->lpViewObject2Vtbl)
+#define INPLACEOBJ(x) ((IOleInPlaceObject*) &(x)->lpOleInPlaceObjectWindowlessVtbl)
+#define INPLACEWIN(x) ((IOleInPlaceObjectWindowless*) &(x)->lpOleInPlaceObjectWindowlessVtbl)
+
+#define DEFINE_THIS(cls,ifc) cls* const This=(cls*)((char*)(iface)-offsetof(cls,lp ## ifc ## Vtbl));
HRESULT HTMLDocument_Create(IUnknown*,REFIID,void**);
void HTMLDocument_Persist_Init(HTMLDocument*);
void HTMLDocument_OleObj_Init(HTMLDocument*);
void HTMLDocument_View_Init(HTMLDocument*);
+void HTMLDocument_Window_Init(HTMLDocument*);
HRESULT ProtocolFactory_Create(REFCLSID,REFIID,void**);
Index: dlls/mshtml/oleobj.c
===================================================================
RCS file: /home/wine/wine/dlls/mshtml/oleobj.c,v
retrieving revision 1.5
diff -u -p -r1.5 oleobj.c
--- dlls/mshtml/oleobj.c 1 Jun 2005 19:57:42 -0000 1.5
+++ dlls/mshtml/oleobj.c 27 Jun 2005 18:56:36 -0000
@@ -374,104 +374,10 @@ static const IOleDocumentVtbl OleDocumen
OleDocument_EnumViews
};
-/**********************************************************
- * IOleInPlaceActiveObject implementation
- */
-
-#define ACTOBJ_THIS \
- HTMLDocument* const This=(HTMLDocument*)((char*)(iface)-offsetof(HTMLDocument,lpOleInPlaceActiveObjectVtbl));
-
-static HRESULT WINAPI OleInPlaceActiveObject_QueryInterface(IOleInPlaceActiveObject *iface, REFIID riid, void **ppvObject)
-{
- ACTOBJ_THIS
- return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppvObject);
-}
-
-static ULONG WINAPI OleInPlaceActiveObject_AddRef(IOleInPlaceActiveObject *iface)
-{
- ACTOBJ_THIS
- return IHTMLDocument2_AddRef(HTMLDOC(This));
-}
-
-static ULONG WINAPI OleInPlaceActiveObject_Release(IOleInPlaceActiveObject *iface)
-{
- ACTOBJ_THIS
- return IHTMLDocument2_Release(HTMLDOC(This));
-}
-
-static HRESULT WINAPI OleInPlaceActiveObject_GetWindow(IOleInPlaceActiveObject *iface, HWND *phwnd)
-{
- ACTOBJ_THIS
- TRACE("(%p)->(%p)\n", This, phwnd);
-
- if(!phwnd)
- return E_INVALIDARG;
-
- *phwnd = This->hwnd;
- return S_OK;
-}
-
-static HRESULT WINAPI OleInPlaceActiveObject_ContextSensitiveHelp(IOleInPlaceActiveObject *iface, BOOL fEnterMode)
-{
- ACTOBJ_THIS
- FIXME("(%p)->(%x)\n", This, fEnterMode);
- return E_NOTIMPL;
-}
-
-static HRESULT WINAPI OleInPlaceActiveObject_TranslateAccelerator(IOleInPlaceActiveObject *iface, LPMSG lpmsg)
-{
- ACTOBJ_THIS
- FIXME("(%p)->(%p)\n", This, lpmsg);
- return E_NOTIMPL;
-}
-
-static HRESULT WINAPI OleInPlaceActiveObject_OnFrameWindowActivate(IOleInPlaceActiveObject *iface, BOOL fActivate)
-{
- ACTOBJ_THIS
- FIXME("(%p)->(%x)\n", This, fActivate);
- return E_NOTIMPL;
-}
-
-static HRESULT WINAPI OleInPlaceActiveObject_OnDocWindowActivate(IOleInPlaceActiveObject *iface, BOOL fActivate)
-{
- ACTOBJ_THIS
- FIXME("(%p)->(%x)\n", This, fActivate);
- return E_NOTIMPL;
-}
-
-static HRESULT WINAPI OleInPlaceActiveObject_ResizeBorder(IOleInPlaceActiveObject *iface, LPCRECT prcBorder,
- IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow)
-{
- ACTOBJ_THIS
- FIXME("(%p)->(%p %p %x)\n", This, prcBorder, pUIWindow, fFrameWindow);
- return E_NOTIMPL;
-}
-
-static HRESULT WINAPI OleInPlaceActiveObject_EnableModeless(IOleInPlaceActiveObject *iface, BOOL fEnable)
-{
- ACTOBJ_THIS
- FIXME("(%p)->(%x)\n", This, fEnable);
- return E_NOTIMPL;
-}
-
-static const IOleInPlaceActiveObjectVtbl OleInPlaceActiveObjectVtbl = {
- OleInPlaceActiveObject_QueryInterface,
- OleInPlaceActiveObject_AddRef,
- OleInPlaceActiveObject_Release,
- OleInPlaceActiveObject_GetWindow,
- OleInPlaceActiveObject_ContextSensitiveHelp,
- OleInPlaceActiveObject_TranslateAccelerator,
- OleInPlaceActiveObject_OnFrameWindowActivate,
- OleInPlaceActiveObject_OnDocWindowActivate,
- OleInPlaceActiveObject_ResizeBorder,
- OleInPlaceActiveObject_EnableModeless
-};
-
void HTMLDocument_OleObj_Init(HTMLDocument *This)
{
This->lpOleObjectVtbl = &OleObjectVtbl;
This->lpOleDocumentVtbl = &OleDocumentVtbl;
- This->lpOleInPlaceActiveObjectVtbl = &OleInPlaceActiveObjectVtbl;
This->client = NULL;
}
--- /dev/null 1970-01-01 01:00:00.000000000 +0100
+++ dlls/mshtml/olewnd.c 2005-06-27 20:58:53.000000000 +0200
@@ -0,0 +1,239 @@
+/*
+ * Copyright 2005 Jacek Caban
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "config.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#define COBJMACROS
+
+#include "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "ole2.h"
+#include "docobj.h"
+
+#include "mshtml.h"
+
+#include "wine/debug.h"
+
+#include "mshtml_private.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
+
+/**********************************************************
+ * IOleInPlaceActiveObject implementation
+ */
+
+#define ACTOBJ_THIS DEFINE_THIS(HTMLDocument, OleInPlaceActiveObject)
+
+static HRESULT WINAPI OleInPlaceActiveObject_QueryInterface(IOleInPlaceActiveObject *iface, REFIID riid, void **ppvObject)
+{
+ ACTOBJ_THIS
+ return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppvObject);
+}
+
+static ULONG WINAPI OleInPlaceActiveObject_AddRef(IOleInPlaceActiveObject *iface)
+{
+ ACTOBJ_THIS
+ return IHTMLDocument2_AddRef(HTMLDOC(This));
+}
+
+static ULONG WINAPI OleInPlaceActiveObject_Release(IOleInPlaceActiveObject *iface)
+{
+ ACTOBJ_THIS
+ return IHTMLDocument2_Release(HTMLDOC(This));
+}
+
+static HRESULT WINAPI OleInPlaceActiveObject_GetWindow(IOleInPlaceActiveObject *iface, HWND *phwnd)
+{
+ ACTOBJ_THIS
+ TRACE("(%p)->(%p)\n", This, phwnd);
+
+ if(!phwnd)
+ return E_INVALIDARG;
+
+ *phwnd = This->hwnd;
+ return S_OK;
+}
+
+static HRESULT WINAPI OleInPlaceActiveObject_ContextSensitiveHelp(IOleInPlaceActiveObject *iface, BOOL fEnterMode)
+{
+ ACTOBJ_THIS
+ FIXME("(%p)->(%x)\n", This, fEnterMode);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceActiveObject_TranslateAccelerator(IOleInPlaceActiveObject *iface, LPMSG lpmsg)
+{
+ ACTOBJ_THIS
+ FIXME("(%p)->(%p)\n", This, lpmsg);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceActiveObject_OnFrameWindowActivate(IOleInPlaceActiveObject *iface, BOOL fActivate)
+{
+ ACTOBJ_THIS
+ FIXME("(%p)->(%x)\n", This, fActivate);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceActiveObject_OnDocWindowActivate(IOleInPlaceActiveObject *iface, BOOL fActivate)
+{
+ ACTOBJ_THIS
+ FIXME("(%p)->(%x)\n", This, fActivate);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceActiveObject_ResizeBorder(IOleInPlaceActiveObject *iface, LPCRECT prcBorder,
+ IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow)
+{
+ ACTOBJ_THIS
+ FIXME("(%p)->(%p %p %x)\n", This, prcBorder, pUIWindow, fFrameWindow);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceActiveObject_EnableModeless(IOleInPlaceActiveObject *iface, BOOL fEnable)
+{
+ ACTOBJ_THIS
+ FIXME("(%p)->(%x)\n", This, fEnable);
+ return E_NOTIMPL;
+}
+
+static const IOleInPlaceActiveObjectVtbl OleInPlaceActiveObjectVtbl = {
+ OleInPlaceActiveObject_QueryInterface,
+ OleInPlaceActiveObject_AddRef,
+ OleInPlaceActiveObject_Release,
+ OleInPlaceActiveObject_GetWindow,
+ OleInPlaceActiveObject_ContextSensitiveHelp,
+ OleInPlaceActiveObject_TranslateAccelerator,
+ OleInPlaceActiveObject_OnFrameWindowActivate,
+ OleInPlaceActiveObject_OnDocWindowActivate,
+ OleInPlaceActiveObject_ResizeBorder,
+ OleInPlaceActiveObject_EnableModeless
+};
+
+#undef ACTOBJ_THIS
+
+/**********************************************************
+ * IOleInPlaceObjectWindowless implementation
+ */
+
+#define OLEINPLACEWND_THIS DEFINE_THIS(HTMLDocument, OleInPlaceObjectWindowless)
+
+static HRESULT WINAPI OleInPlaceObjectWindowless_QueryInterface(IOleInPlaceObjectWindowless *iface,
+ REFIID riid, void **ppvObject)
+{
+ OLEINPLACEWND_THIS
+ return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppvObject);
+}
+
+static ULONG WINAPI OleInPlaceObjectWindowless_AddRef(IOleInPlaceObjectWindowless *iface)
+{
+ OLEINPLACEWND_THIS
+ return IHTMLDocument2_AddRef(HTMLDOC(This));
+}
+
+static ULONG WINAPI OleInPlaceObjectWindowless_Release(IOleInPlaceObjectWindowless *iface)
+{
+ OLEINPLACEWND_THIS
+ return IHTMLDocument2_Release(HTMLDOC(This));
+}
+
+static HRESULT WINAPI OleInPlaceObjectWindowless_GetWindow(IOleInPlaceObjectWindowless *iface,
+ HWND *phwnd)
+{
+ OLEINPLACEWND_THIS
+ return IOleWindow_GetWindow(OLEWIN(This), phwnd);
+}
+
+static HRESULT WINAPI OleInPlaceObjectWindowless_ContextSensitiveHelp(IOleInPlaceObjectWindowless *iface,
+ BOOL fEnterMode)
+{
+ OLEINPLACEWND_THIS
+ return IOleWindow_ContextSensitiveHelp(OLEWIN(This), fEnterMode);
+}
+
+static HRESULT WINAPI OleInPlaceObjectWindowless_InPlaceDeactivate(IOleInPlaceObjectWindowless *iface)
+{
+ OLEINPLACEWND_THIS
+ FIXME("(%p)\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceObjectWindowless_UIDeactivate(IOleInPlaceObjectWindowless *iface)
+{
+ OLEINPLACEWND_THIS
+ FIXME("(%p)\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceObjectWindowless_SetObjectRects(IOleInPlaceObjectWindowless *iface,
+ LPCRECT lprcPosRect, LPCRECT lprcClipRect)
+{
+ OLEINPLACEWND_THIS
+ FIXME("(%p)->(%p %p)\n", This, lprcPosRect, lprcClipRect);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceObjectWindowless_ReactivateAndUndo(IOleInPlaceObjectWindowless *iface)
+{
+ OLEINPLACEWND_THIS
+ FIXME("(%p)\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceObjectWindowless_OnWindowMessage(IOleInPlaceObjectWindowless *iface,
+ UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *lpResult)
+{
+ OLEINPLACEWND_THIS
+ FIXME("(%p)->(%u %u %lu %p)\n", This, msg, wParam, lParam, lpResult);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleInPlaceObjectWindowless_GetDropTarget(IOleInPlaceObjectWindowless *iface,
+ IDropTarget **ppDropTarget)
+{
+ OLEINPLACEWND_THIS
+ FIXME("(%p)->(%p)\n", This, ppDropTarget);
+ return E_NOTIMPL;
+}
+
+static IOleInPlaceObjectWindowlessVtbl OleInPlaceObjectWindowlessVtbl = {
+ OleInPlaceObjectWindowless_QueryInterface,
+ OleInPlaceObjectWindowless_AddRef,
+ OleInPlaceObjectWindowless_Release,
+ OleInPlaceObjectWindowless_GetWindow,
+ OleInPlaceObjectWindowless_ContextSensitiveHelp,
+ OleInPlaceObjectWindowless_InPlaceDeactivate,
+ OleInPlaceObjectWindowless_UIDeactivate,
+ OleInPlaceObjectWindowless_SetObjectRects,
+ OleInPlaceObjectWindowless_ReactivateAndUndo,
+ OleInPlaceObjectWindowless_OnWindowMessage,
+ OleInPlaceObjectWindowless_GetDropTarget
+};
+
+#undef INPLACEWIN_THIS
+
+void HTMLDocument_Window_Init(HTMLDocument *This)
+{
+ This->lpOleInPlaceActiveObjectVtbl = &OleInPlaceActiveObjectVtbl;
+ This->lpOleInPlaceObjectWindowlessVtbl = &OleInPlaceObjectWindowlessVtbl;
+}
+
More information about the wine-patches
mailing list