msxml3: Use ifaces instead of vtbl pointers in BindStatusCallback.

This commit is contained in:
Michael Stefaniuc 2010-12-08 22:59:37 +01:00 committed by Alexandre Julliard
parent d24e87fdaf
commit 4038523b4e
1 changed files with 14 additions and 14 deletions

View File

@ -105,8 +105,8 @@ static void httprequest_setreadystate(httprequest *This, READYSTATE state)
struct BindStatusCallback
{
const IBindStatusCallbackVtbl *lpBindStatusCallbackVtbl;
const IHttpNegotiateVtbl *lpHttpNegotiateVtbl;
IBindStatusCallback IBindStatusCallback_iface;
IHttpNegotiate IHttpNegotiate_iface;
LONG ref;
IBinding *binding;
@ -121,12 +121,12 @@ struct BindStatusCallback
static inline BindStatusCallback *impl_from_IBindStatusCallback( IBindStatusCallback *iface )
{
return (BindStatusCallback *)((char*)iface - FIELD_OFFSET(BindStatusCallback, lpBindStatusCallbackVtbl));
return CONTAINING_RECORD(iface, BindStatusCallback, IBindStatusCallback_iface);
}
static inline BindStatusCallback *impl_from_IHttpNegotiate( IHttpNegotiate *iface )
{
return (BindStatusCallback *)((char*)iface - FIELD_OFFSET(BindStatusCallback, lpHttpNegotiateVtbl));
return CONTAINING_RECORD(iface, BindStatusCallback, IHttpNegotiate_iface);
}
void BindStatusCallback_Detach(BindStatusCallback *bsc)
@ -135,7 +135,7 @@ void BindStatusCallback_Detach(BindStatusCallback *bsc)
{
if (bsc->binding) IBinding_Abort(bsc->binding);
bsc->request = NULL;
IBindStatusCallback_Release((IBindStatusCallback*)bsc);
IBindStatusCallback_Release(&bsc->IBindStatusCallback_iface);
}
}
@ -151,11 +151,11 @@ static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallback *ifa
if (IsEqualGUID(&IID_IUnknown, riid) ||
IsEqualGUID(&IID_IBindStatusCallback, riid))
{
*ppv = &This->lpBindStatusCallbackVtbl;
*ppv = &This->IBindStatusCallback_iface;
}
else if (IsEqualGUID(&IID_IHttpNegotiate, riid))
{
*ppv = &This->lpHttpNegotiateVtbl;
*ppv = &This->IHttpNegotiate_iface;
}
else if (IsEqualGUID(&IID_IServiceProvider, riid) ||
IsEqualGUID(&IID_IBindStatusCallbackEx, riid) ||
@ -344,19 +344,19 @@ static HRESULT WINAPI BSCHttpNegotiate_QueryInterface(IHttpNegotiate *iface,
REFIID riid, void **ppv)
{
BindStatusCallback *This = impl_from_IHttpNegotiate(iface);
return IBindStatusCallback_QueryInterface((IBindStatusCallback*)This, riid, ppv);
return IBindStatusCallback_QueryInterface(&This->IBindStatusCallback_iface, riid, ppv);
}
static ULONG WINAPI BSCHttpNegotiate_AddRef(IHttpNegotiate *iface)
{
BindStatusCallback *This = impl_from_IHttpNegotiate(iface);
return IBindStatusCallback_AddRef((IBindStatusCallback*)This);
return IBindStatusCallback_AddRef(&This->IBindStatusCallback_iface);
}
static ULONG WINAPI BSCHttpNegotiate_Release(IHttpNegotiate *iface)
{
BindStatusCallback *This = impl_from_IHttpNegotiate(iface);
return IBindStatusCallback_Release((IBindStatusCallback*)This);
return IBindStatusCallback_Release(&This->IBindStatusCallback_iface);
}
static HRESULT WINAPI BSCHttpNegotiate_BeginningTransaction(IHttpNegotiate *iface,
@ -433,8 +433,8 @@ static HRESULT BindStatusCallback_create(httprequest* This, BindStatusCallback *
return E_OUTOFMEMORY;
}
bsc->lpBindStatusCallbackVtbl = &BindStatusCallbackVtbl;
bsc->lpHttpNegotiateVtbl = &BSCHttpNegotiateVtbl;
bsc->IBindStatusCallback_iface.lpVtbl = &BindStatusCallbackVtbl;
bsc->IHttpNegotiate_iface.lpVtbl = &BSCHttpNegotiateVtbl;
bsc->ref = 1;
bsc->request = This;
bsc->binding = NULL;
@ -465,7 +465,7 @@ static HRESULT BindStatusCallback_create(httprequest* This, BindStatusCallback *
FIXME("unsupported body data type %d\n", V_VT(body));
}
hr = RegisterBindStatusCallback(pbc, (IBindStatusCallback*)bsc, NULL, 0);
hr = RegisterBindStatusCallback(pbc, &bsc->IBindStatusCallback_iface, NULL, 0);
if (hr == S_OK)
{
IMoniker *moniker;
@ -484,7 +484,7 @@ static HRESULT BindStatusCallback_create(httprequest* This, BindStatusCallback *
if (FAILED(hr))
{
IBindStatusCallback_Release((IBindStatusCallback*)bsc);
IBindStatusCallback_Release(&bsc->IBindStatusCallback_iface);
bsc = NULL;
}