Commit b91061e1 authored by Alistair Leslie-Hughes's avatar Alistair Leslie-Hughes Committed by Alexandre Julliard

shdocvw: Added Support for the IViewObjectEx interface.

parent fea5a776
...@@ -115,7 +115,7 @@ struct WebBrowser { ...@@ -115,7 +115,7 @@ struct WebBrowser {
const IPersistMemoryVtbl *lpPersistMemoryVtbl; const IPersistMemoryVtbl *lpPersistMemoryVtbl;
const IPersistStreamInitVtbl *lpPersistStreamInitVtbl; const IPersistStreamInitVtbl *lpPersistStreamInitVtbl;
const IProvideClassInfo2Vtbl *lpProvideClassInfoVtbl; const IProvideClassInfo2Vtbl *lpProvideClassInfoVtbl;
const IViewObject2Vtbl *lpViewObjectVtbl; const IViewObjectExVtbl *lpViewObjectVtbl;
const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl; const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl;
const IOleCommandTargetVtbl *lpOleCommandTargetVtbl; const IOleCommandTargetVtbl *lpOleCommandTargetVtbl;
const IHlinkFrameVtbl *lpHlinkFrameVtbl; const IHlinkFrameVtbl *lpHlinkFrameVtbl;
...@@ -173,6 +173,7 @@ struct InternetExplorer { ...@@ -173,6 +173,7 @@ struct InternetExplorer {
#define CONPTCONT(x) ((IConnectionPointContainer*) &(x)->lpConnectionPointContainerVtbl) #define CONPTCONT(x) ((IConnectionPointContainer*) &(x)->lpConnectionPointContainerVtbl)
#define VIEWOBJ(x) ((IViewObject*) &(x)->lpViewObjectVtbl); #define VIEWOBJ(x) ((IViewObject*) &(x)->lpViewObjectVtbl);
#define VIEWOBJ2(x) ((IViewObject2*) &(x)->lpViewObjectVtbl); #define VIEWOBJ2(x) ((IViewObject2*) &(x)->lpViewObjectVtbl);
#define VIEWOBJEX(x) ((IViewObjectEx*) &(x)->lpViewObjectVtbl);
#define ACTIVEOBJ(x) ((IOleInPlaceActiveObject*) &(x)->lpOleInPlaceActiveObjectVtbl) #define ACTIVEOBJ(x) ((IOleInPlaceActiveObject*) &(x)->lpOleInPlaceActiveObjectVtbl)
#define OLECMD(x) ((IOleCommandTarget*) &(x)->lpOleCommandTargetVtbl) #define OLECMD(x) ((IOleCommandTarget*) &(x)->lpOleCommandTargetVtbl)
#define HLINKFRAME(x) ((IHlinkFrame*) &(x)->lpHlinkFrameVtbl) #define HLINKFRAME(x) ((IHlinkFrame*) &(x)->lpHlinkFrameVtbl)
......
...@@ -23,25 +23,25 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); ...@@ -23,25 +23,25 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
#define VIEWOBJ_THIS(iface) DEFINE_THIS(WebBrowser, ViewObject, iface) #define VIEWOBJ_THIS(iface) DEFINE_THIS(WebBrowser, ViewObject, iface)
static HRESULT WINAPI ViewObject_QueryInterface(IViewObject2 *iface, REFIID riid, void **ppv) static HRESULT WINAPI ViewObject_QueryInterface(IViewObjectEx *iface, REFIID riid, void **ppv)
{ {
WebBrowser *This = VIEWOBJ_THIS(iface); WebBrowser *This = VIEWOBJ_THIS(iface);
return IWebBrowser2_QueryInterface(WEBBROWSER(This), riid, ppv); return IWebBrowser2_QueryInterface(WEBBROWSER(This), riid, ppv);
} }
static ULONG WINAPI ViewObject_AddRef(IViewObject2 *iface) static ULONG WINAPI ViewObject_AddRef(IViewObjectEx *iface)
{ {
WebBrowser *This = VIEWOBJ_THIS(iface); WebBrowser *This = VIEWOBJ_THIS(iface);
return IWebBrowser2_AddRef(WEBBROWSER(This)); return IWebBrowser2_AddRef(WEBBROWSER(This));
} }
static ULONG WINAPI ViewObject_Release(IViewObject2 *iface) static ULONG WINAPI ViewObject_Release(IViewObjectEx *iface)
{ {
WebBrowser *This = VIEWOBJ_THIS(iface); WebBrowser *This = VIEWOBJ_THIS(iface);
return IWebBrowser2_Release(WEBBROWSER(This)); return IWebBrowser2_Release(WEBBROWSER(This));
} }
static HRESULT WINAPI ViewObject_Draw(IViewObject2 *iface, DWORD dwDrawAspect, static HRESULT WINAPI ViewObject_Draw(IViewObjectEx *iface, DWORD dwDrawAspect,
LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hdcTargetDev, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hdcTargetDev,
HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds,
BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR), BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR),
...@@ -54,7 +54,7 @@ static HRESULT WINAPI ViewObject_Draw(IViewObject2 *iface, DWORD dwDrawAspect, ...@@ -54,7 +54,7 @@ static HRESULT WINAPI ViewObject_Draw(IViewObject2 *iface, DWORD dwDrawAspect,
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI ViewObject_GetColorSet(IViewObject2 *iface, DWORD dwAspect, static HRESULT WINAPI ViewObject_GetColorSet(IViewObjectEx *iface, DWORD dwAspect,
LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev,
LOGPALETTE **ppColorSet) LOGPALETTE **ppColorSet)
{ {
...@@ -64,7 +64,7 @@ static HRESULT WINAPI ViewObject_GetColorSet(IViewObject2 *iface, DWORD dwAspect ...@@ -64,7 +64,7 @@ static HRESULT WINAPI ViewObject_GetColorSet(IViewObject2 *iface, DWORD dwAspect
return E_NOTIMPL; 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) void *pvAspect, DWORD *pdwFreeze)
{ {
WebBrowser *This = VIEWOBJ_THIS(iface); WebBrowser *This = VIEWOBJ_THIS(iface);
...@@ -72,14 +72,14 @@ static HRESULT WINAPI ViewObject_Freeze(IViewObject2 *iface, DWORD dwDrawAspect, ...@@ -72,14 +72,14 @@ static HRESULT WINAPI ViewObject_Freeze(IViewObject2 *iface, DWORD dwDrawAspect,
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI ViewObject_Unfreeze(IViewObject2 *iface, DWORD dwFreeze) static HRESULT WINAPI ViewObject_Unfreeze(IViewObjectEx *iface, DWORD dwFreeze)
{ {
WebBrowser *This = VIEWOBJ_THIS(iface); WebBrowser *This = VIEWOBJ_THIS(iface);
FIXME("(%p)->(%d)\n", This, dwFreeze); FIXME("(%p)->(%d)\n", This, dwFreeze);
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI ViewObject_SetAdvise(IViewObject2 *iface, DWORD aspects, DWORD advf, static HRESULT WINAPI ViewObject_SetAdvise(IViewObjectEx *iface, DWORD aspects, DWORD advf,
IAdviseSink *pAdvSink) IAdviseSink *pAdvSink)
{ {
WebBrowser *This = VIEWOBJ_THIS(iface); WebBrowser *This = VIEWOBJ_THIS(iface);
...@@ -87,7 +87,7 @@ static HRESULT WINAPI ViewObject_SetAdvise(IViewObject2 *iface, DWORD aspects, D ...@@ -87,7 +87,7 @@ static HRESULT WINAPI ViewObject_SetAdvise(IViewObject2 *iface, DWORD aspects, D
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI ViewObject_GetAdvise(IViewObject2 *iface, DWORD *pAspects, static HRESULT WINAPI ViewObject_GetAdvise(IViewObjectEx *iface, DWORD *pAspects,
DWORD *pAdvf, IAdviseSink **ppAdvSink) DWORD *pAdvf, IAdviseSink **ppAdvSink)
{ {
WebBrowser *This = VIEWOBJ_THIS(iface); WebBrowser *This = VIEWOBJ_THIS(iface);
...@@ -95,7 +95,7 @@ static HRESULT WINAPI ViewObject_GetAdvise(IViewObject2 *iface, DWORD *pAspects, ...@@ -95,7 +95,7 @@ static HRESULT WINAPI ViewObject_GetAdvise(IViewObject2 *iface, DWORD *pAspects,
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT WINAPI ViewObject_GetExtent(IViewObject2 *iface, DWORD dwAspect, LONG lindex, static HRESULT WINAPI ViewObject_GetExtent(IViewObjectEx *iface, DWORD dwAspect, LONG lindex,
DVTARGETDEVICE *ptd, LPSIZEL lpsizel) DVTARGETDEVICE *ptd, LPSIZEL lpsizel)
{ {
WebBrowser *This = VIEWOBJ_THIS(iface); WebBrowser *This = VIEWOBJ_THIS(iface);
...@@ -103,7 +103,45 @@ static HRESULT WINAPI ViewObject_GetExtent(IViewObject2 *iface, DWORD dwAspect, ...@@ -103,7 +103,45 @@ static HRESULT WINAPI ViewObject_GetExtent(IViewObject2 *iface, DWORD dwAspect,
return E_NOTIMPL; return E_NOTIMPL;
} }
static const IViewObject2Vtbl ViewObjectVtbl = { static HRESULT WINAPI ViewObject_GetRect(IViewObjectEx *iface, DWORD dwAspect, LPRECTL pRect)
{
WebBrowser *This = VIEWOBJ_THIS(iface);
FIXME("(%p)->(%d %p)\n", This, dwAspect, pRect);
return E_NOTIMPL;
}
static HRESULT WINAPI ViewObject_GetViewStatus(IViewObjectEx *iface, DWORD *pdwStatus)
{
WebBrowser *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)
{
WebBrowser *This = VIEWOBJ_THIS(iface);
FIXME("(%p)->(%d %p %p %d %p)\n", This, dwAspect, pRectBounds, pRectBounds, lCloseHint, pHitResult);
return E_NOTIMPL;
}
static HRESULT WINAPI ViewObject_QueryHitRect(IViewObjectEx * iface, DWORD dwAspect, LPCRECT pRectBounds,
LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult)
{
WebBrowser *This = VIEWOBJ_THIS(iface);
FIXME("(%p)->(%d %p %p %p %d %p)\n", This, dwAspect, pRectBounds, pRectLoc, pRectBounds, lCloseHint, pHitResult);
return E_NOTIMPL;
}
static HRESULT WINAPI ViewObject_GetNaturalExtent(IViewObjectEx *iface, DWORD dwAspect, LONG lindex,
DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel)
{
WebBrowser *This = VIEWOBJ_THIS(iface);
FIXME("(%p)->(%d %d %p %p %p)\n", This, dwAspect, lindex, ptd, pExtentInfo, pSizel);
return E_NOTIMPL;
}
static const IViewObjectExVtbl ViewObjectVtbl = {
ViewObject_QueryInterface, ViewObject_QueryInterface,
ViewObject_AddRef, ViewObject_AddRef,
ViewObject_Release, ViewObject_Release,
...@@ -113,7 +151,12 @@ static const IViewObject2Vtbl ViewObjectVtbl = { ...@@ -113,7 +151,12 @@ static const IViewObject2Vtbl ViewObjectVtbl = {
ViewObject_Unfreeze, ViewObject_Unfreeze,
ViewObject_SetAdvise, ViewObject_SetAdvise,
ViewObject_GetAdvise, ViewObject_GetAdvise,
ViewObject_GetExtent ViewObject_GetExtent,
ViewObject_GetRect,
ViewObject_GetViewStatus,
ViewObject_QueryHitPoint,
ViewObject_QueryHitRect,
ViewObject_GetNaturalExtent
}; };
#undef VIEWOBJ_THIS #undef VIEWOBJ_THIS
......
...@@ -93,6 +93,9 @@ static HRESULT WINAPI WebBrowser_QueryInterface(IWebBrowser2 *iface, REFIID riid ...@@ -93,6 +93,9 @@ static HRESULT WINAPI WebBrowser_QueryInterface(IWebBrowser2 *iface, REFIID riid
}else if(IsEqualGUID(&IID_IViewObject2, riid)) { }else if(IsEqualGUID(&IID_IViewObject2, riid)) {
TRACE("(%p)->(IID_IViewObject2 %p)\n", This, ppv); TRACE("(%p)->(IID_IViewObject2 %p)\n", This, ppv);
*ppv = VIEWOBJ2(This); *ppv = VIEWOBJ2(This);
}else if(IsEqualGUID(&IID_IViewObjectEx, riid)) {
TRACE("(%p)->(IID_IViewObjectEx %p)\n", This, ppv);
*ppv = VIEWOBJEX(This);
}else if(IsEqualGUID(&IID_IOleInPlaceActiveObject, riid)) { }else if(IsEqualGUID(&IID_IOleInPlaceActiveObject, riid)) {
TRACE("(%p)->(IID_IOleInPlaceActiveObject %p)\n", This, ppv); TRACE("(%p)->(IID_IOleInPlaceActiveObject %p)\n", This, ppv);
*ppv = ACTIVEOBJ(This); *ppv = ACTIVEOBJ(This);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment