shdocvw: Get rid of *_THIS macros in navigate.c.

This commit is contained in:
Jacek Caban 2010-11-13 17:48:21 +01:00 committed by Alexandre Julliard
parent 538a870b89
commit 2450a2d834
2 changed files with 83 additions and 88 deletions

View File

@ -34,8 +34,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
static const WCHAR emptyW[] = {0};
typedef struct {
const IBindStatusCallbackVtbl *lpBindStatusCallbackVtbl;
const IHttpNegotiateVtbl *lpHttpNegotiateVtbl;
IBindStatusCallback IBindStatusCallback_iface;
IHttpNegotiate IHttpNegotiate_iface;
LONG ref;
@ -47,9 +47,6 @@ typedef struct {
ULONG post_data_len;
} BindStatusCallback;
#define BINDSC(x) ((IBindStatusCallback*) &(x)->lpBindStatusCallbackVtbl)
#define HTTPNEG(x) ((IHttpNegotiate*) &(x)->lpHttpNegotiateVtbl)
static void dump_BINDINFO(BINDINFO *bi)
{
static const char * const BINDINFOF_str[] = {
@ -130,38 +127,38 @@ static HRESULT set_dochost_url(DocHost *This, const WCHAR *url)
return S_OK;
}
#define BINDSC_THIS(iface) DEFINE_THIS(BindStatusCallback, BindStatusCallback, iface)
static inline BindStatusCallback *impl_from_IBindStatusCallback(IBindStatusCallback *iface)
{
return (BindStatusCallback*)((char*)iface - FIELD_OFFSET(BindStatusCallback, IBindStatusCallback_iface));
}
static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallback *iface,
REFIID riid, void **ppv)
{
BindStatusCallback *This = BINDSC_THIS(iface);
*ppv = NULL;
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
if(IsEqualGUID(&IID_IUnknown, riid)) {
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = BINDSC(This);
*ppv = &This->IBindStatusCallback_iface;
}else if(IsEqualGUID(&IID_IBindStatusCallback, riid)) {
TRACE("(%p)->(IID_IBindStatusCallback %p)\n", This, ppv);
*ppv = BINDSC(This);
*ppv = &This->IBindStatusCallback_iface;
}else if(IsEqualGUID(&IID_IHttpNegotiate, riid)) {
TRACE("(%p)->(IID_IHttpNegotiate %p)\n", This, ppv);
*ppv = HTTPNEG(This);
}
if(*ppv) {
IBindStatusCallback_AddRef(BINDSC(This));
return S_OK;
}
*ppv = &This->IHttpNegotiate_iface;
}else {
*ppv = NULL;
WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
return E_NOINTERFACE;
}
IUnknown_AddRef((IUnknown*)*ppv);
return S_OK;
}
static ULONG WINAPI BindStatusCallback_AddRef(IBindStatusCallback *iface)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
LONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref);
@ -171,7 +168,7 @@ static ULONG WINAPI BindStatusCallback_AddRef(IBindStatusCallback *iface)
static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallback *iface)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
LONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref);
@ -192,7 +189,7 @@ static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallback *iface)
static HRESULT WINAPI BindStatusCallback_OnStartBinding(IBindStatusCallback *iface,
DWORD dwReserved, IBinding *pbind)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
TRACE("(%p)->(%d %p)\n", This, dwReserved, pbind);
@ -202,7 +199,7 @@ static HRESULT WINAPI BindStatusCallback_OnStartBinding(IBindStatusCallback *ifa
static HRESULT WINAPI BindStatusCallback_GetPriority(IBindStatusCallback *iface,
LONG *pnPriority)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
FIXME("(%p)->(%p)\n", This, pnPriority);
return E_NOTIMPL;
}
@ -210,7 +207,7 @@ static HRESULT WINAPI BindStatusCallback_GetPriority(IBindStatusCallback *iface,
static HRESULT WINAPI BindStatusCallback_OnLowResource(IBindStatusCallback *iface,
DWORD reserved)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
FIXME("(%p)->(%d)\n", This, reserved);
return E_NOTIMPL;
}
@ -218,7 +215,7 @@ static HRESULT WINAPI BindStatusCallback_OnLowResource(IBindStatusCallback *ifac
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface,
ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
TRACE("(%p)->(%d %d %d %s)\n", This, ulProgress, ulProgressMax, ulStatusCode,
debugstr_w(szStatusText));
@ -247,7 +244,7 @@ static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface,
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface,
HRESULT hresult, LPCWSTR szError)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));
@ -264,7 +261,7 @@ static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *ifac
static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface,
DWORD *grfBINDF, BINDINFO *pbindinfo)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
TRACE("(%p)->(%p %p)\n", This, grfBINDF, pbindinfo);
@ -276,8 +273,8 @@ static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface,
pbindinfo->stgmedData.tymed = TYMED_HGLOBAL;
pbindinfo->stgmedData.u.hGlobal = This->post_data;
pbindinfo->cbstgmedData = This->post_data_len;
pbindinfo->stgmedData.pUnkForRelease = (IUnknown*)BINDSC(This);
IBindStatusCallback_AddRef(BINDSC(This));
pbindinfo->stgmedData.pUnkForRelease = (IUnknown*)&This->IBindStatusCallback_iface;
IBindStatusCallback_AddRef(&This->IBindStatusCallback_iface);
}
return S_OK;
@ -286,7 +283,7 @@ static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface,
static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallback *iface,
DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
FIXME("(%p)->(%08x %d %p %p)\n", This, grfBSCF, dwSize, pformatetc, pstgmed);
return E_NOTIMPL;
}
@ -294,15 +291,13 @@ static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallback *if
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable(IBindStatusCallback *iface,
REFIID riid, IUnknown *punk)
{
BindStatusCallback *This = BINDSC_THIS(iface);
BindStatusCallback *This = impl_from_IBindStatusCallback(iface);
TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), punk);
return dochost_object_available(This->doc_host, punk);
}
#undef BSC_THIS
static const IBindStatusCallbackVtbl BindStatusCallbackVtbl = {
BindStatusCallback_QueryInterface,
BindStatusCallback_AddRef,
@ -317,31 +312,34 @@ static const IBindStatusCallbackVtbl BindStatusCallbackVtbl = {
BindStatusCallback_OnObjectAvailable
};
#define HTTPNEG_THIS(iface) DEFINE_THIS(BindStatusCallback, HttpNegotiate, iface)
static inline BindStatusCallback *impl_from_IHttpNegotiate(IHttpNegotiate *iface)
{
return (BindStatusCallback*)((char*)iface - FIELD_OFFSET(BindStatusCallback, IHttpNegotiate_iface));
}
static HRESULT WINAPI HttpNegotiate_QueryInterface(IHttpNegotiate *iface,
REFIID riid, void **ppv)
{
BindStatusCallback *This = HTTPNEG_THIS(iface);
return IBindStatusCallback_QueryInterface(BINDSC(This), riid, ppv);
BindStatusCallback *This = impl_from_IHttpNegotiate(iface);
return IBindStatusCallback_QueryInterface(&This->IBindStatusCallback_iface, riid, ppv);
}
static ULONG WINAPI HttpNegotiate_AddRef(IHttpNegotiate *iface)
{
BindStatusCallback *This = HTTPNEG_THIS(iface);
return IBindStatusCallback_AddRef(BINDSC(This));
BindStatusCallback *This = impl_from_IHttpNegotiate(iface);
return IBindStatusCallback_AddRef(&This->IBindStatusCallback_iface);
}
static ULONG WINAPI HttpNegotiate_Release(IHttpNegotiate *iface)
{
BindStatusCallback *This = HTTPNEG_THIS(iface);
return IBindStatusCallback_Release(BINDSC(This));
BindStatusCallback *This = impl_from_IHttpNegotiate(iface);
return IBindStatusCallback_Release(&This->IBindStatusCallback_iface);
}
static HRESULT WINAPI HttpNegotiate_BeginningTransaction(IHttpNegotiate *iface,
LPCWSTR szURL, LPCWSTR szHeaders, DWORD dwReserved, LPWSTR *pszAdditionalHeaders)
{
BindStatusCallback *This = HTTPNEG_THIS(iface);
BindStatusCallback *This = impl_from_IHttpNegotiate(iface);
TRACE("(%p)->(%s %s %d %p)\n", This, debugstr_w(szURL), debugstr_w(szHeaders),
dwReserved, pszAdditionalHeaders);
@ -359,14 +357,12 @@ static HRESULT WINAPI HttpNegotiate_OnResponse(IHttpNegotiate *iface,
DWORD dwResponseCode, LPCWSTR szResponseHeaders, LPCWSTR szRequestHeaders,
LPWSTR *pszAdditionalRequestHeaders)
{
BindStatusCallback *This = HTTPNEG_THIS(iface);
BindStatusCallback *This = impl_from_IHttpNegotiate(iface);
TRACE("(%p)->(%d %s %s %p)\n", This, dwResponseCode, debugstr_w(szResponseHeaders),
debugstr_w(szRequestHeaders), pszAdditionalRequestHeaders);
return S_OK;
}
#undef HTTPNEG_THIS
static const IHttpNegotiateVtbl HttpNegotiateVtbl = {
HttpNegotiate_QueryInterface,
HttpNegotiate_AddRef,
@ -380,8 +376,8 @@ static BindStatusCallback *create_callback(DocHost *doc_host, LPCWSTR url, PBYTE
{
BindStatusCallback *ret = heap_alloc(sizeof(BindStatusCallback));
ret->lpBindStatusCallbackVtbl = &BindStatusCallbackVtbl;
ret->lpHttpNegotiateVtbl = &HttpNegotiateVtbl;
ret->IBindStatusCallback_iface.lpVtbl = &BindStatusCallbackVtbl;
ret->IHttpNegotiate_iface.lpVtbl = &HttpNegotiateVtbl;
ret->ref = 1;
ret->url = heap_strdupW(url);
@ -712,12 +708,12 @@ static HRESULT navigate_bsc(DocHost *This, BindStatusCallback *bsc, IMoniker *mo
if(This->document)
deactivate_document(This);
CreateAsyncBindCtx(0, BINDSC(bsc), 0, &bindctx);
CreateAsyncBindCtx(0, &bsc->IBindStatusCallback_iface, 0, &bindctx);
if(This->frame)
IOleInPlaceFrame_EnableModeless(This->frame, FALSE);
hres = bind_to_object(This, mon, bsc->url, bindctx, BINDSC(bsc));
hres = bind_to_object(This, mon, bsc->url, bindctx, &bsc->IBindStatusCallback_iface);
if(This->frame)
IOleInPlaceFrame_EnableModeless(This->frame, TRUE);
@ -741,7 +737,7 @@ static void navigate_bsc_proc(DocHost *This, task_header_t *t)
navigate_bsc(This, task->bsc, NULL);
IBindStatusCallback_Release(BINDSC(task->bsc));
IBindStatusCallback_Release(&task->bsc->IBindStatusCallback_iface);
}
@ -849,7 +845,7 @@ static HRESULT navigate_hlink(DocHost *This, IMoniker *mon, IBindCtx *bindctx,
}else {
bsc = create_callback(This, url, post_data, post_data_len, headers);
hres = navigate_bsc(This, bsc, mon);
IBindStatusCallback_Release(BINDSC(bsc));
IBindStatusCallback_Release(&bsc->IBindStatusCallback_iface);
}
CoTaskMemFree(url);
@ -884,30 +880,33 @@ HRESULT go_home(DocHost *This)
return navigate_url(This, wszPageName, NULL, NULL, NULL, NULL);
}
#define HLINKFRAME_THIS(iface) DEFINE_THIS(HlinkFrame, IHlinkFrame, iface)
static inline HlinkFrame *impl_from_IHlinkFrame(IHlinkFrame *iface)
{
return (HlinkFrame*)((char*)iface - FIELD_OFFSET(HlinkFrame, IHlinkFrame_iface));
}
static HRESULT WINAPI HlinkFrame_QueryInterface(IHlinkFrame *iface, REFIID riid, void **ppv)
{
HlinkFrame *This = HLINKFRAME_THIS(iface);
HlinkFrame *This = impl_from_IHlinkFrame(iface);
return IUnknown_QueryInterface(This->outer, riid, ppv);
}
static ULONG WINAPI HlinkFrame_AddRef(IHlinkFrame *iface)
{
HlinkFrame *This = HLINKFRAME_THIS(iface);
HlinkFrame *This = impl_from_IHlinkFrame(iface);
return IUnknown_AddRef(This->outer);
}
static ULONG WINAPI HlinkFrame_Release(IHlinkFrame *iface)
{
HlinkFrame *This = HLINKFRAME_THIS(iface);
HlinkFrame *This = impl_from_IHlinkFrame(iface);
return IUnknown_Release(This->outer);
}
static HRESULT WINAPI HlinkFrame_SetBrowseContext(IHlinkFrame *iface,
IHlinkBrowseContext *pihlbc)
{
HlinkFrame *This = HLINKFRAME_THIS(iface);
HlinkFrame *This = impl_from_IHlinkFrame(iface);
FIXME("(%p)->(%p)\n", This, pihlbc);
return E_NOTIMPL;
}
@ -915,7 +914,7 @@ static HRESULT WINAPI HlinkFrame_SetBrowseContext(IHlinkFrame *iface,
static HRESULT WINAPI HlinkFrame_GetBrowseContext(IHlinkFrame *iface,
IHlinkBrowseContext **ppihlbc)
{
HlinkFrame *This = HLINKFRAME_THIS(iface);
HlinkFrame *This = impl_from_IHlinkFrame(iface);
FIXME("(%p)->(%p)\n", This, ppihlbc);
return E_NOTIMPL;
}
@ -923,7 +922,7 @@ static HRESULT WINAPI HlinkFrame_GetBrowseContext(IHlinkFrame *iface,
static HRESULT WINAPI HlinkFrame_Navigate(IHlinkFrame *iface, DWORD grfHLNF, LPBC pbc,
IBindStatusCallback *pibsc, IHlink *pihlNavigate)
{
HlinkFrame *This = HLINKFRAME_THIS(iface);
HlinkFrame *This = impl_from_IHlinkFrame(iface);
IMoniker *mon;
LPWSTR location = NULL;
@ -954,7 +953,7 @@ static HRESULT WINAPI HlinkFrame_Navigate(IHlinkFrame *iface, DWORD grfHLNF, LPB
static HRESULT WINAPI HlinkFrame_OnNavigate(IHlinkFrame *iface, DWORD grfHLNF,
IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, DWORD dwreserved)
{
HlinkFrame *This = HLINKFRAME_THIS(iface);
HlinkFrame *This = impl_from_IHlinkFrame(iface);
FIXME("(%p)->(%08x %p %s %s %d)\n", This, grfHLNF, pimkTarget, debugstr_w(pwzLocation),
debugstr_w(pwzFriendlyName), dwreserved);
return E_NOTIMPL;
@ -963,14 +962,12 @@ static HRESULT WINAPI HlinkFrame_OnNavigate(IHlinkFrame *iface, DWORD grfHLNF,
static HRESULT WINAPI HlinkFrame_UpdateHlink(IHlinkFrame *iface, ULONG uHLID,
IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName)
{
HlinkFrame *This = HLINKFRAME_THIS(iface);
HlinkFrame *This = impl_from_IHlinkFrame(iface);
FIXME("(%p)->(%u %p %s %s)\n", This, uHLID, pimkTarget, debugstr_w(pwzLocation),
debugstr_w(pwzFriendlyName));
return E_NOTIMPL;
}
#undef HLINKFRAME_THIS
static const IHlinkFrameVtbl HlinkFrameVtbl = {
HlinkFrame_QueryInterface,
HlinkFrame_AddRef,
@ -982,112 +979,113 @@ static const IHlinkFrameVtbl HlinkFrameVtbl = {
HlinkFrame_UpdateHlink
};
#define TARGETFRAME2_THIS(iface) DEFINE_THIS(HlinkFrame, ITargetFrame2, iface)
static inline HlinkFrame *impl_from_ITargetFrame2(ITargetFrame2 *iface)
{
return (HlinkFrame*)((char*)iface - FIELD_OFFSET(HlinkFrame, IHlinkFrame_iface));
}
static HRESULT WINAPI TargetFrame2_QueryInterface(ITargetFrame2 *iface, REFIID riid, void **ppv)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
return IUnknown_QueryInterface(This->outer, riid, ppv);
}
static ULONG WINAPI TargetFrame2_AddRef(ITargetFrame2 *iface)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
return IUnknown_AddRef(This->outer);
}
static ULONG WINAPI TargetFrame2_Release(ITargetFrame2 *iface)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
return IUnknown_Release(This->outer);
}
static HRESULT WINAPI TargetFrame2_SetFrameName(ITargetFrame2 *iface, LPCWSTR pszFrameName)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
FIXME("(%p)->(%s)\n", This, debugstr_w(pszFrameName));
return E_NOTIMPL;
}
static HRESULT WINAPI TargetFrame2_GetFrameName(ITargetFrame2 *iface, LPWSTR *ppszFrameName)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
FIXME("(%p)->(%p)\n", This, ppszFrameName);
return E_NOTIMPL;
}
static HRESULT WINAPI TargetFrame2_GetParentFrame(ITargetFrame2 *iface, IUnknown **ppunkParent)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
FIXME("(%p)->(%p)\n", This, ppunkParent);
return E_NOTIMPL;
}
static HRESULT WINAPI TargetFrame2_SetFrameSrc(ITargetFrame2 *iface, LPCWSTR pszFrameSrc)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
FIXME("(%p)->(%s)\n", This, debugstr_w(pszFrameSrc));
return E_NOTIMPL;
}
static HRESULT WINAPI TargetFrame2_GetFrameSrc(ITargetFrame2 *iface, LPWSTR *ppszFrameSrc)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI TargetFrame2_GetFramesContainer(ITargetFrame2 *iface, IOleContainer **ppContainer)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
FIXME("(%p)->(%p)\n", This, ppContainer);
return E_NOTIMPL;
}
static HRESULT WINAPI TargetFrame2_SetFrameOptions(ITargetFrame2 *iface, DWORD dwFlags)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
FIXME("(%p)->(%x)\n", This, dwFlags);
return E_NOTIMPL;
}
static HRESULT WINAPI TargetFrame2_GetFrameOptions(ITargetFrame2 *iface, DWORD *pdwFlags)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
FIXME("(%p)->(%p)\n", This, pdwFlags);
return E_NOTIMPL;
}
static HRESULT WINAPI TargetFrame2_SetFrameMargins(ITargetFrame2 *iface, DWORD dwWidth, DWORD dwHeight)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(iface);
FIXME("(%p)->(%d %d)\n", This, dwWidth, dwHeight);
return E_NOTIMPL;
}
static HRESULT WINAPI TargetFrame2_GetFrameMargins(ITargetFrame2 *iface, DWORD *pdwWidth, DWORD *pdwHeight)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(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)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(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)
{
HlinkFrame *This = TARGETFRAME2_THIS(iface);
HlinkFrame *This = impl_from_ITargetFrame2(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,
@ -1110,10 +1108,10 @@ BOOL HlinkFrame_QI(HlinkFrame *This, REFIID riid, void **ppv)
{
if(IsEqualGUID(&IID_IHlinkFrame, riid)) {
TRACE("(%p)->(IID_IHlinkFrame %p)\n", This, ppv);
*ppv = HLINKFRAME(This);
*ppv = &This->IHlinkFrame_iface;
}else if(IsEqualGUID(&IID_ITargetFrame2, riid)) {
TRACE("(%p)->(IID_ITargetFrame2 %p)\n", This, ppv);
*ppv = TARGETFRAME2(This);
*ppv = &This->ITargetFrame2_iface;
}else {
return FALSE;
}
@ -1124,8 +1122,8 @@ BOOL HlinkFrame_QI(HlinkFrame *This, REFIID riid, void **ppv)
void HlinkFrame_Init(HlinkFrame *This, IUnknown *outer, DocHost *doc_host)
{
This->lpIHlinkFrameVtbl = &HlinkFrameVtbl;
This->lpITargetFrame2Vtbl = &TargetFrame2Vtbl;
This->IHlinkFrame_iface.lpVtbl = &HlinkFrameVtbl;
This->ITargetFrame2_iface.lpVtbl = &TargetFrame2Vtbl;
This->outer = outer;
This->doc_host = doc_host;

View File

@ -69,8 +69,8 @@ typedef struct {
} ConnectionPointContainer;
typedef struct {
const IHlinkFrameVtbl *lpIHlinkFrameVtbl;
const ITargetFrame2Vtbl *lpITargetFrame2Vtbl;
IHlinkFrame IHlinkFrame_iface;
ITargetFrame2 ITargetFrame2_iface;
IUnknown *outer;
DocHost *doc_host;
@ -197,9 +197,6 @@ struct InternetExplorer {
#define CONPTCONT(x) ((IConnectionPointContainer*) &(x)->lpConnectionPointContainerVtbl)
#define INPLACEFRAME(x) ((IOleInPlaceFrame*) &(x)->lpOleInPlaceFrameVtbl)
#define HLINKFRAME(x) ((IHlinkFrame*) &(x)->lpIHlinkFrameVtbl)
#define TARGETFRAME2(x) ((ITargetFrame2*) &(x)->lpITargetFrame2Vtbl)
void WebBrowser_OleObject_Init(WebBrowser*);
void WebBrowser_ViewObject_Init(WebBrowser*);
void WebBrowser_Persist_Init(WebBrowser*);