1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00

rpcrt4: Use a CONTAINING_RECORD helper to retrieve CStdStubBuffer from IRpcStubBuffer.

This commit is contained in:
Zebediah Figura 2022-12-12 13:39:40 -06:00 committed by Alexandre Julliard
parent c97b8a8f1a
commit 180edc5a4f

View file

@ -47,9 +47,14 @@ static LONG WINAPI stub_filter(EXCEPTION_POINTERS *eptr)
return EXCEPTION_EXECUTE_HANDLER; return EXCEPTION_EXECUTE_HANDLER;
} }
static CStdStubBuffer *impl_from_IRpcStubBuffer(IRpcStubBuffer *iface)
{
return CONTAINING_RECORD(&iface->lpVtbl, CStdStubBuffer, lpVtbl);
}
static inline cstdstubbuffer_delegating_t *impl_from_delegating( IRpcStubBuffer *iface ) static inline cstdstubbuffer_delegating_t *impl_from_delegating( IRpcStubBuffer *iface )
{ {
return CONTAINING_RECORD(iface, cstdstubbuffer_delegating_t, stub_buffer); return CONTAINING_RECORD(impl_from_IRpcStubBuffer(iface), cstdstubbuffer_delegating_t, stub_buffer);
} }
HRESULT CStdStubBuffer_Construct(REFIID riid, HRESULT CStdStubBuffer_Construct(REFIID riid,
@ -392,7 +397,7 @@ HRESULT WINAPI CStdStubBuffer_QueryInterface(LPRPCSTUBBUFFER iface,
REFIID riid, REFIID riid,
LPVOID *obj) LPVOID *obj)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(riid),obj); TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(riid),obj);
if (IsEqualIID(&IID_IUnknown, riid) || if (IsEqualIID(&IID_IUnknown, riid) ||
@ -408,7 +413,7 @@ HRESULT WINAPI CStdStubBuffer_QueryInterface(LPRPCSTUBBUFFER iface,
ULONG WINAPI CStdStubBuffer_AddRef(LPRPCSTUBBUFFER iface) ULONG WINAPI CStdStubBuffer_AddRef(LPRPCSTUBBUFFER iface)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
TRACE("(%p)->AddRef()\n",This); TRACE("(%p)->AddRef()\n",This);
return InterlockedIncrement(&This->RefCount); return InterlockedIncrement(&This->RefCount);
} }
@ -416,7 +421,7 @@ ULONG WINAPI CStdStubBuffer_AddRef(LPRPCSTUBBUFFER iface)
ULONG WINAPI NdrCStdStubBuffer_Release(LPRPCSTUBBUFFER iface, ULONG WINAPI NdrCStdStubBuffer_Release(LPRPCSTUBBUFFER iface,
LPPSFACTORYBUFFER pPSF) LPPSFACTORYBUFFER pPSF)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
ULONG refs; ULONG refs;
TRACE("(%p)->Release()\n",This); TRACE("(%p)->Release()\n",This);
@ -462,7 +467,7 @@ ULONG WINAPI NdrCStdStubBuffer2_Release(LPRPCSTUBBUFFER iface,
HRESULT WINAPI CStdStubBuffer_Connect(LPRPCSTUBBUFFER iface, HRESULT WINAPI CStdStubBuffer_Connect(LPRPCSTUBBUFFER iface,
LPUNKNOWN lpUnkServer) LPUNKNOWN lpUnkServer)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
HRESULT r; HRESULT r;
IUnknown *new = NULL; IUnknown *new = NULL;
@ -477,7 +482,7 @@ HRESULT WINAPI CStdStubBuffer_Connect(LPRPCSTUBBUFFER iface,
void WINAPI CStdStubBuffer_Disconnect(LPRPCSTUBBUFFER iface) void WINAPI CStdStubBuffer_Disconnect(LPRPCSTUBBUFFER iface)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
IUnknown *old; IUnknown *old;
TRACE("(%p)->Disconnect()\n",This); TRACE("(%p)->Disconnect()\n",This);
@ -491,7 +496,7 @@ HRESULT WINAPI CStdStubBuffer_Invoke(LPRPCSTUBBUFFER iface,
PRPCOLEMESSAGE pMsg, PRPCOLEMESSAGE pMsg,
LPRPCCHANNELBUFFER pChannel) LPRPCCHANNELBUFFER pChannel)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
DWORD dwPhase = STUB_UNMARSHAL; DWORD dwPhase = STUB_UNMARSHAL;
HRESULT hr = S_OK; HRESULT hr = S_OK;
@ -521,14 +526,14 @@ HRESULT WINAPI CStdStubBuffer_Invoke(LPRPCSTUBBUFFER iface,
LPRPCSTUBBUFFER WINAPI CStdStubBuffer_IsIIDSupported(LPRPCSTUBBUFFER iface, LPRPCSTUBBUFFER WINAPI CStdStubBuffer_IsIIDSupported(LPRPCSTUBBUFFER iface,
REFIID riid) REFIID riid)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
TRACE("(%p)->IsIIDSupported(%s)\n",This,debugstr_guid(riid)); TRACE("(%p)->IsIIDSupported(%s)\n",This,debugstr_guid(riid));
return IsEqualGUID(STUB_HEADER(This).piid, riid) ? iface : NULL; return IsEqualGUID(STUB_HEADER(This).piid, riid) ? iface : NULL;
} }
ULONG WINAPI CStdStubBuffer_CountRefs(LPRPCSTUBBUFFER iface) ULONG WINAPI CStdStubBuffer_CountRefs(LPRPCSTUBBUFFER iface)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
TRACE("(%p)->CountRefs()\n",This); TRACE("(%p)->CountRefs()\n",This);
return This->RefCount; return This->RefCount;
} }
@ -536,7 +541,7 @@ ULONG WINAPI CStdStubBuffer_CountRefs(LPRPCSTUBBUFFER iface)
HRESULT WINAPI CStdStubBuffer_DebugServerQueryInterface(LPRPCSTUBBUFFER iface, HRESULT WINAPI CStdStubBuffer_DebugServerQueryInterface(LPRPCSTUBBUFFER iface,
LPVOID *ppv) LPVOID *ppv)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
TRACE("(%p)->DebugServerQueryInterface(%p)\n",This,ppv); TRACE("(%p)->DebugServerQueryInterface(%p)\n",This,ppv);
return S_OK; return S_OK;
} }
@ -544,7 +549,7 @@ HRESULT WINAPI CStdStubBuffer_DebugServerQueryInterface(LPRPCSTUBBUFFER iface,
void WINAPI CStdStubBuffer_DebugServerRelease(LPRPCSTUBBUFFER iface, void WINAPI CStdStubBuffer_DebugServerRelease(LPRPCSTUBBUFFER iface,
LPVOID pv) LPVOID pv)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
TRACE("(%p)->DebugServerRelease(%p)\n",This,pv); TRACE("(%p)->DebugServerRelease(%p)\n",This,pv);
} }
@ -613,7 +618,7 @@ const IRpcStubBufferVtbl CStdStubBuffer_Delegating_Vtbl =
const MIDL_SERVER_INFO *CStdStubBuffer_GetServerInfo(IRpcStubBuffer *iface) const MIDL_SERVER_INFO *CStdStubBuffer_GetServerInfo(IRpcStubBuffer *iface)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
return STUB_HEADER(This).pServerInfo; return STUB_HEADER(This).pServerInfo;
} }
@ -654,7 +659,7 @@ void WINAPI NdrStubGetBuffer(LPRPCSTUBBUFFER iface,
LPRPCCHANNELBUFFER pRpcChannelBuffer, LPRPCCHANNELBUFFER pRpcChannelBuffer,
PMIDL_STUB_MESSAGE pStubMsg) PMIDL_STUB_MESSAGE pStubMsg)
{ {
CStdStubBuffer *This = (CStdStubBuffer *)iface; CStdStubBuffer *This = impl_from_IRpcStubBuffer(iface);
HRESULT hr; HRESULT hr;
TRACE("(%p, %p, %p)\n", This, pRpcChannelBuffer, pStubMsg); TRACE("(%p, %p, %p)\n", This, pRpcChannelBuffer, pStubMsg);