Piotr Caban : mshtml: Added ViewObjectEx stub implementation.

Alexandre Julliard julliard at winehq.org
Wed Dec 16 09:41:36 CST 2009


Module: wine
Branch: master
Commit: bffa74a1c3b540056775aefc42a7ebe153107b05
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bffa74a1c3b540056775aefc42a7ebe153107b05

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Dec 15 23:45:34 2009 +0100

mshtml: Added ViewObjectEx stub implementation.

---

 dlls/mshtml/htmldoc.c        |    3 ++
 dlls/mshtml/mshtml_private.h |    7 ++--
 dlls/mshtml/view.c           |   73 ++++++++++++++++++++++++++++++++++--------
 3 files changed, 66 insertions(+), 17 deletions(-)

diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index eb1c782..57d4fc6 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -1697,6 +1697,9 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
     }else if(IsEqualGUID(&IID_IViewObject2, riid)) {
         TRACE("(%p)->(IID_IViewObject2, %p)\n", This, ppv);
         *ppv = VIEWOBJ2(This);
+    }else if(IsEqualGUID(&IID_IViewObjectEx, riid)) {
+        TRACE("(%p)->(IID_IViewObjectEx, %p)\n", This, ppv);
+        *ppv = VIEWOBJEX(This);
     }else if(IsEqualGUID(&IID_IOleWindow, riid)) {
         TRACE("(%p)->(IID_IOleWindow, %p)\n", This, ppv);
         *ppv = OLEWIN(This);
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 4fb4c89..afd0bff 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -314,7 +314,7 @@ struct HTMLDocument {
     const IOleDocumentVtbl                *lpOleDocumentVtbl;
     const IOleDocumentViewVtbl            *lpOleDocumentViewVtbl;
     const IOleInPlaceActiveObjectVtbl     *lpOleInPlaceActiveObjectVtbl;
-    const IViewObject2Vtbl                *lpViewObject2Vtbl;
+    const IViewObjectExVtbl               *lpViewObjectExVtbl;
     const IOleInPlaceObjectWindowlessVtbl *lpOleInPlaceObjectWindowlessVtbl;
     const IServiceProviderVtbl            *lpServiceProviderVtbl;
     const IOleCommandTargetVtbl           *lpOleCommandTargetVtbl;
@@ -564,8 +564,9 @@ struct HTMLDocumentNode {
 #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 VIEWOBJ(x)       ((IViewObject*)                  &(x)->lpViewObjectExVtbl)
+#define VIEWOBJ2(x)      ((IViewObject2*)                 &(x)->lpViewObjectExVtbl)
+#define VIEWOBJEX(x)      ((IViewObjectEx*)               &(x)->lpViewObjectExVtbl)
 #define INPLACEOBJ(x)    ((IOleInPlaceObject*)            &(x)->lpOleInPlaceObjectWindowlessVtbl)
 #define INPLACEWIN(x)    ((IOleInPlaceObjectWindowless*)  &(x)->lpOleInPlaceObjectWindowlessVtbl)
 #define SERVPROV(x)      ((IServiceProvider*)             &(x)->lpServiceProviderVtbl)
diff --git a/dlls/mshtml/view.c b/dlls/mshtml/view.c
index 271a167..f4c62a0 100644
--- a/dlls/mshtml/view.c
+++ b/dlls/mshtml/view.c
@@ -751,27 +751,27 @@ static const IOleDocumentViewVtbl OleDocumentViewVtbl = {
  * IViewObject implementation
  */
 
-#define VIEWOBJ_THIS(iface) DEFINE_THIS(HTMLDocument, ViewObject2, iface)
+#define VIEWOBJ_THIS(iface) DEFINE_THIS(HTMLDocument, ViewObjectEx, iface)
 
-static HRESULT WINAPI ViewObject_QueryInterface(IViewObject2 *iface, REFIID riid, void **ppvObject)
+static HRESULT WINAPI ViewObject_QueryInterface(IViewObjectEx *iface, REFIID riid, void **ppvObject)
 {
     HTMLDocument *This = VIEWOBJ_THIS(iface);
     return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppvObject);
 }
 
-static ULONG WINAPI ViewObject_AddRef(IViewObject2 *iface)
+static ULONG WINAPI ViewObject_AddRef(IViewObjectEx *iface)
 {
     HTMLDocument *This = VIEWOBJ_THIS(iface);
     return IHTMLDocument2_AddRef(HTMLDOC(This));
 }
 
-static ULONG WINAPI ViewObject_Release(IViewObject2 *iface)
+static ULONG WINAPI ViewObject_Release(IViewObjectEx *iface)
 {
     HTMLDocument *This = VIEWOBJ_THIS(iface);
     return IHTMLDocument2_Release(HTMLDOC(This));
 }
 
-static HRESULT WINAPI ViewObject_Draw(IViewObject2 *iface, DWORD dwDrawAspect, LONG lindex, void *pvAspect,
+static HRESULT WINAPI ViewObject_Draw(IViewObjectEx *iface, DWORD dwDrawAspect, LONG lindex, void *pvAspect,
         DVTARGETDEVICE *ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds,
         LPCRECTL lprcWBounds, BOOL (CALLBACK *pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue)
 {
@@ -781,7 +781,7 @@ static HRESULT WINAPI ViewObject_Draw(IViewObject2 *iface, DWORD dwDrawAspect, L
     return E_NOTIMPL;
 }
 
-static HRESULT WINAPI ViewObject_GetColorSet(IViewObject2 *iface, DWORD dwDrawAspect, LONG lindex, void *pvAspect,
+static HRESULT WINAPI ViewObject_GetColorSet(IViewObjectEx *iface, DWORD dwDrawAspect, LONG lindex, void *pvAspect,
         DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE **ppColorSet)
 {
     HTMLDocument *This = VIEWOBJ_THIS(iface);
@@ -789,7 +789,7 @@ static HRESULT WINAPI ViewObject_GetColorSet(IViewObject2 *iface, DWORD dwDrawAs
     return E_NOTIMPL;
 }
 
-static HRESULT WINAPI ViewObject_Freeze(IViewObject2 *iface, DWORD dwDrawAspect, LONG lindex,
+static HRESULT WINAPI ViewObject_Freeze(IViewObjectEx *iface, DWORD dwDrawAspect, LONG lindex,
         void *pvAspect, DWORD *pdwFreeze)
 {
     HTMLDocument *This = VIEWOBJ_THIS(iface);
@@ -797,28 +797,28 @@ static HRESULT WINAPI ViewObject_Freeze(IViewObject2 *iface, DWORD dwDrawAspect,
     return E_NOTIMPL;
 }
 
-static HRESULT WINAPI ViewObject_Unfreeze(IViewObject2 *iface, DWORD dwFreeze)
+static HRESULT WINAPI ViewObject_Unfreeze(IViewObjectEx *iface, DWORD dwFreeze)
 {
     HTMLDocument *This = VIEWOBJ_THIS(iface);
     FIXME("(%p)->(%d)\n", This, dwFreeze);
     return E_NOTIMPL;
 }
 
-static HRESULT WINAPI ViewObject_SetAdvise(IViewObject2 *iface, DWORD aspects, DWORD advf, IAdviseSink *pAdvSink)
+static HRESULT WINAPI ViewObject_SetAdvise(IViewObjectEx *iface, DWORD aspects, DWORD advf, IAdviseSink *pAdvSink)
 {
     HTMLDocument *This = VIEWOBJ_THIS(iface);
     FIXME("(%p)->(%d %d %p)\n", This, aspects, advf, pAdvSink);
     return E_NOTIMPL;
 }
 
-static HRESULT WINAPI ViewObject_GetAdvise(IViewObject2 *iface, DWORD *pAspects, DWORD *pAdvf, IAdviseSink **ppAdvSink)
+static HRESULT WINAPI ViewObject_GetAdvise(IViewObjectEx *iface, DWORD *pAspects, DWORD *pAdvf, IAdviseSink **ppAdvSink)
 {
     HTMLDocument *This = VIEWOBJ_THIS(iface);
     FIXME("(%p)->(%p %p %p)\n", This, pAspects, pAdvf, ppAdvSink);
     return E_NOTIMPL;
 }
 
-static HRESULT WINAPI ViewObject_GetExtent(IViewObject2 *iface, DWORD dwDrawAspect, LONG lindex,
+static HRESULT WINAPI ViewObject_GetExtent(IViewObjectEx *iface, DWORD dwDrawAspect, LONG lindex,
                                 DVTARGETDEVICE* ptd, LPSIZEL lpsizel)
 {
     HTMLDocument *This = VIEWOBJ_THIS(iface);
@@ -826,9 +826,49 @@ static HRESULT WINAPI ViewObject_GetExtent(IViewObject2 *iface, DWORD dwDrawAspe
     return E_NOTIMPL;
 }
 
+static HRESULT WINAPI ViewObject_GetRect(IViewObjectEx *iface, DWORD dwAspect, LPRECTL pRect)
+{
+    HTMLDocument *This = VIEWOBJ_THIS(iface);
+    FIXME("(%p)->(%d %p)\n", This, dwAspect, pRect);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ViewObject_GetViewStatus(IViewObjectEx *iface, DWORD *pdwStatus)
+{
+    HTMLDocument *This = VIEWOBJ_THIS(iface);
+    FIXME("(%p)->(%p)\n", This, pdwStatus);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ViewObject_QueryHitPoint(IViewObjectEx* iface, DWORD dwAspect,
+        LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult)
+{
+    HTMLDocument *This = VIEWOBJ_THIS(iface);
+    FIXME("(%p)->(%d %p (%d %d) %d %p)\n", This, dwAspect, pRectBounds, ptlLoc.x,
+         ptlLoc.y, lCloseHint, pHitResult);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ViewObject_QueryHitRect(IViewObjectEx *iface, DWORD dwAspect,
+        LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult)
+{
+    HTMLDocument *This = VIEWOBJ_THIS(iface);
+    FIXME("(%p)->(%d %p %p %d %p)\n", This, dwAspect, pRectBounds, pRectLoc, lCloseHint, pHitResult);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ViewObject_GetNaturalExtent(IViewObjectEx *iface, DWORD dwAspect, LONG lindex,
+        DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel)
+{
+    HTMLDocument *This = VIEWOBJ_THIS(iface);
+    FIXME("(%p)->(%d %d %p %p %p %p\n", This, dwAspect,lindex, ptd,
+            hicTargetDev, pExtentInfo, pSizel);
+    return E_NOTIMPL;
+}
+
 #undef VIEWOBJ_THIS
 
-static const IViewObject2Vtbl ViewObjectVtbl = {
+static const IViewObjectExVtbl ViewObjectVtbl = {
     ViewObject_QueryInterface,
     ViewObject_AddRef,
     ViewObject_Release,
@@ -838,11 +878,16 @@ static const IViewObject2Vtbl ViewObjectVtbl = {
     ViewObject_Unfreeze,
     ViewObject_SetAdvise,
     ViewObject_GetAdvise,
-    ViewObject_GetExtent
+    ViewObject_GetExtent,
+    ViewObject_GetRect,
+    ViewObject_GetViewStatus,
+    ViewObject_QueryHitPoint,
+    ViewObject_QueryHitRect,
+    ViewObject_GetNaturalExtent
 };
 
 void HTMLDocument_View_Init(HTMLDocument *This)
 {
     This->lpOleDocumentViewVtbl = &OleDocumentViewVtbl;
-    This->lpViewObject2Vtbl = &ViewObjectVtbl;
+    This->lpViewObjectExVtbl = &ViewObjectVtbl;
 }




More information about the wine-cvs mailing list