Module: wine Branch: master Commit: 1943d84ce0c7e15e0ac6803b3560662012b99523 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1943d84ce0c7e15e0ac6803b35...
Author: Jacek Caban jacek@codeweavers.com Date: Thu May 20 13:47:02 2010 +0200
shdocvw: Added ITargetFrame2 stub implementation.
---
dlls/shdocvw/navigate.c | 125 +++++++++++++++++++++++++++++++++++++++++++++ dlls/shdocvw/shdocvw.h | 3 + dlls/shdocvw/webbrowser.c | 3 + 3 files changed, 131 insertions(+), 0 deletions(-)
diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c index db6a3c4..99980c7 100644 --- a/dlls/shdocvw/navigate.c +++ b/dlls/shdocvw/navigate.c @@ -950,7 +950,132 @@ static const IHlinkFrameVtbl HlinkFrameVtbl = { HlinkFrame_UpdateHlink };
+#define TARGETFRAME2_THIS(iface) DEFINE_THIS(WebBrowser, ITargetFrame2, iface) + +static HRESULT WINAPI TargetFrame2_QueryInterface(ITargetFrame2 *iface, REFIID riid, void **ppv) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + return IWebBrowser2_QueryInterface(WEBBROWSER2(This), riid, ppv); +} + +static ULONG WINAPI TargetFrame2_AddRef(ITargetFrame2 *iface) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + return IWebBrowser2_AddRef(WEBBROWSER2(This)); +} + +static ULONG WINAPI TargetFrame2_Release(ITargetFrame2 *iface) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + return IWebBrowser2_Release(WEBBROWSER2(This)); +} + +static HRESULT WINAPI TargetFrame2_SetFrameName(ITargetFrame2 *iface, LPCWSTR pszFrameName) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%s)\n", This, debugstr_w(pszFrameName)); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_GetFrameName(ITargetFrame2 *iface, LPWSTR *ppszFrameName) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppszFrameName); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_GetParentFrame(ITargetFrame2 *iface, IUnknown **ppunkParent) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppunkParent); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_SetFrameSrc(ITargetFrame2 *iface, LPCWSTR pszFrameSrc) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%s)\n", This, debugstr_w(pszFrameSrc)); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_GetFrameSrc(ITargetFrame2 *iface, LPWSTR *ppszFrameSrc) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->()\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_GetFramesContainer(ITargetFrame2 *iface, IOleContainer **ppContainer) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%p)\n", This, ppContainer); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_SetFrameOptions(ITargetFrame2 *iface, DWORD dwFlags) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%x)\n", This, dwFlags); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_GetFrameOptions(ITargetFrame2 *iface, DWORD *pdwFlags) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%p)\n", This, pdwFlags); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_SetFrameMargins(ITargetFrame2 *iface, DWORD dwWidth, DWORD dwHeight) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%d %d)\n", This, dwWidth, dwHeight); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_GetFrameMargins(ITargetFrame2 *iface, DWORD *pdwWidth, DWORD *pdwHeight) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%p %p)\n", This, pdwWidth, pdwHeight); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_FindFrame(ITargetFrame2 *iface, LPCWSTR pszTargetName, DWORD dwFlags, IUnknown **ppunkTargetFrame) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%s %x %p)\n", This, debugstr_w(pszTargetName), dwFlags, ppunkTargetFrame); + return E_NOTIMPL; +} + +static HRESULT WINAPI TargetFrame2_GetTargetAlias(ITargetFrame2 *iface, LPCWSTR pszTargetName, LPWSTR *ppszTargetAlias) +{ + WebBrowser *This = TARGETFRAME2_THIS(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_w(pszTargetName), ppszTargetAlias); + return E_NOTIMPL; +} + +#undef TARGETFRAME2_THIS + +static const ITargetFrame2Vtbl TargetFrame2Vtbl = { + TargetFrame2_QueryInterface, + TargetFrame2_AddRef, + TargetFrame2_Release, + TargetFrame2_SetFrameName, + TargetFrame2_GetFrameName, + TargetFrame2_GetParentFrame, + TargetFrame2_SetFrameSrc, + TargetFrame2_GetFrameSrc, + TargetFrame2_GetFramesContainer, + TargetFrame2_SetFrameOptions, + TargetFrame2_GetFrameOptions, + TargetFrame2_SetFrameMargins, + TargetFrame2_GetFrameMargins, + TargetFrame2_FindFrame, + TargetFrame2_GetTargetAlias +}; + void WebBrowser_HlinkFrame_Init(WebBrowser *This) { This->lpHlinkFrameVtbl = &HlinkFrameVtbl; + This->lpITargetFrame2Vtbl = &TargetFrame2Vtbl; } diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h index 2dce575..1af0365 100644 --- a/dlls/shdocvw/shdocvw.h +++ b/dlls/shdocvw/shdocvw.h @@ -37,6 +37,7 @@ #include "exdisp.h" #include "mshtmhst.h" #include "hlink.h" +#include "htiframe.h"
#include "wine/unicode.h"
@@ -126,6 +127,7 @@ struct WebBrowser { const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl; const IOleCommandTargetVtbl *lpOleCommandTargetVtbl; const IHlinkFrameVtbl *lpHlinkFrameVtbl; + const ITargetFrame2Vtbl *lpITargetFrame2Vtbl; const IServiceProviderVtbl *lpServiceProviderVtbl; const IDataObjectVtbl *lpDataObjectVtbl;
@@ -186,6 +188,7 @@ struct InternetExplorer { #define OLECMD(x) ((IOleCommandTarget*) &(x)->lpOleCommandTargetVtbl) #define HLINKFRAME(x) ((IHlinkFrame*) &(x)->lpHlinkFrameVtbl) #define DATAOBJECT(x) ((IDataObject*) &(x)->lpDataObjectVtbl) +#define TARGETFRAME2(x) ((ITargetFrame2*) &(x)->lpITargetFrame2Vtbl)
#define CLIENTSITE(x) ((IOleClientSite*) &(x)->lpOleClientSiteVtbl) #define INPLACESITE(x) ((IOleInPlaceSite*) &(x)->lpOleInPlaceSiteVtbl) diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index b2fce6a..0c26a83 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -102,6 +102,9 @@ static HRESULT WINAPI WebBrowser_QueryInterface(IWebBrowser2 *iface, REFIID riid }else if(IsEqualGUID(&IID_IHlinkFrame, riid)) { TRACE("(%p)->(IID_IHlinkFrame %p)\n", This, ppv); *ppv = HLINKFRAME(This); + }else if(IsEqualGUID(&IID_ITargetFrame2, riid)) { + TRACE("(%p)->(IID_ITargetFrame2 %p)\n", This, ppv); + *ppv = TARGETFRAME2(This); }else if(IsEqualGUID(&IID_IServiceProvider, riid)) { *ppv = SERVPROV(This); TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv);