Michael Stefaniuc : oleaut32: Standardize the COM usage in tmarshal.c.
Alexandre Julliard
julliard at winehq.org
Tue Dec 21 14:32:20 CST 2010
Module: wine
Branch: master
Commit: 80a08012d837c6e55bce93391887d39fb663620a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=80a08012d837c6e55bce93391887d39fb663620a
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Tue Dec 21 11:30:58 2010 +0100
oleaut32: Standardize the COM usage in tmarshal.c.
---
dlls/oleaut32/tmarshal.c | 37 +++++++++++++++++++++----------------
1 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/dlls/oleaut32/tmarshal.c b/dlls/oleaut32/tmarshal.c
index 440319f..45aacf2 100644
--- a/dlls/oleaut32/tmarshal.c
+++ b/dlls/oleaut32/tmarshal.c
@@ -390,7 +390,7 @@ typedef struct _TMAsmProxy {
typedef struct _TMProxyImpl {
LPVOID *lpvtbl;
- const IRpcProxyBufferVtbl *lpvtbl2;
+ IRpcProxyBuffer IRpcProxyBuffer_iface;
LONG ref;
TMAsmProxy *asmstubs;
@@ -405,7 +405,7 @@ typedef struct _TMProxyImpl {
static inline TMProxyImpl *impl_from_IRpcProxyBuffer( IRpcProxyBuffer *iface )
{
- return (TMProxyImpl *)((char*)iface - FIELD_OFFSET(TMProxyImpl, lpvtbl2));
+ return CONTAINING_RECORD(iface, TMProxyImpl, IRpcProxyBuffer_iface);
}
static HRESULT WINAPI
@@ -1743,7 +1743,7 @@ PSFacBuf_CreateProxy(
CoTaskMemFree(proxy);
return E_OUTOFMEMORY;
}
- proxy->lpvtbl2 = &tmproxyvtable;
+ proxy->IRpcProxyBuffer_iface.lpVtbl = &tmproxyvtable;
/* one reference for the proxy */
proxy->ref = 1;
proxy->tinfo = tinfo;
@@ -1835,17 +1835,17 @@ PSFacBuf_CreateProxy(
if (hres == S_OK)
{
*ppv = proxy;
- *ppProxy = (IRpcProxyBuffer *)&(proxy->lpvtbl2);
+ *ppProxy = &proxy->IRpcProxyBuffer_iface;
IUnknown_AddRef((IUnknown *)*ppv);
return S_OK;
}
else
- TMProxyImpl_Release((IRpcProxyBuffer *)&proxy->lpvtbl2);
+ TMProxyImpl_Release(&proxy->IRpcProxyBuffer_iface);
return hres;
}
typedef struct _TMStubImpl {
- const IRpcStubBufferVtbl *lpvtbl;
+ IRpcStubBuffer IRpcStubBuffer_iface;
LONG ref;
LPUNKNOWN pUnk;
@@ -1855,6 +1855,11 @@ typedef struct _TMStubImpl {
BOOL dispatch_derivative;
} TMStubImpl;
+static inline TMStubImpl *impl_from_IRpcStubBuffer(IRpcStubBuffer *iface)
+{
+ return CONTAINING_RECORD(iface, TMStubImpl, IRpcStubBuffer_iface);
+}
+
static HRESULT WINAPI
TMStubImpl_QueryInterface(LPRPCSTUBBUFFER iface, REFIID riid, LPVOID *ppv)
{
@@ -1870,9 +1875,9 @@ TMStubImpl_QueryInterface(LPRPCSTUBBUFFER iface, REFIID riid, LPVOID *ppv)
static ULONG WINAPI
TMStubImpl_AddRef(LPRPCSTUBBUFFER iface)
{
- TMStubImpl *This = (TMStubImpl *)iface;
+ TMStubImpl *This = impl_from_IRpcStubBuffer(iface);
ULONG refCount = InterlockedIncrement(&This->ref);
-
+
TRACE("(%p)->(ref before=%u)\n", This, refCount - 1);
return refCount;
@@ -1881,7 +1886,7 @@ TMStubImpl_AddRef(LPRPCSTUBBUFFER iface)
static ULONG WINAPI
TMStubImpl_Release(LPRPCSTUBBUFFER iface)
{
- TMStubImpl *This = (TMStubImpl *)iface;
+ TMStubImpl *This = impl_from_IRpcStubBuffer(iface);
ULONG refCount = InterlockedDecrement(&This->ref);
TRACE("(%p)->(ref before=%u)\n", This, refCount + 1);
@@ -1900,7 +1905,7 @@ TMStubImpl_Release(LPRPCSTUBBUFFER iface)
static HRESULT WINAPI
TMStubImpl_Connect(LPRPCSTUBBUFFER iface, LPUNKNOWN pUnkServer)
{
- TMStubImpl *This = (TMStubImpl *)iface;
+ TMStubImpl *This = impl_from_IRpcStubBuffer(iface);
TRACE("(%p)->(%p)\n", This, pUnkServer);
@@ -1916,7 +1921,7 @@ TMStubImpl_Connect(LPRPCSTUBBUFFER iface, LPUNKNOWN pUnkServer)
static void WINAPI
TMStubImpl_Disconnect(LPRPCSTUBBUFFER iface)
{
- TMStubImpl *This = (TMStubImpl *)iface;
+ TMStubImpl *This = impl_from_IRpcStubBuffer(iface);
TRACE("(%p)->()\n", This);
@@ -1937,7 +1942,7 @@ TMStubImpl_Invoke(
#ifdef __i386__
int i;
const FUNCDESC *fdesc;
- TMStubImpl *This = (TMStubImpl *)iface;
+ TMStubImpl *This = impl_from_IRpcStubBuffer(iface);
HRESULT hres;
DWORD *args = NULL, res, *xargs, nrofargs;
marshal_state buf;
@@ -2113,7 +2118,7 @@ TMStubImpl_IsIIDSupported(LPRPCSTUBBUFFER iface, REFIID riid) {
static ULONG WINAPI
TMStubImpl_CountRefs(LPRPCSTUBBUFFER iface) {
- TMStubImpl *This = (TMStubImpl *)iface;
+ TMStubImpl *This = impl_from_IRpcStubBuffer(iface);
FIXME("()\n");
return This->ref; /*FIXME? */
@@ -2163,14 +2168,14 @@ PSFacBuf_CreateStub(
stub = CoTaskMemAlloc(sizeof(TMStubImpl));
if (!stub)
return E_OUTOFMEMORY;
- stub->lpvtbl = &tmstubvtbl;
+ stub->IRpcStubBuffer_iface.lpVtbl = &tmstubvtbl;
stub->ref = 1;
stub->tinfo = tinfo;
stub->dispatch_stub = NULL;
stub->dispatch_derivative = FALSE;
stub->iid = *riid;
- hres = IRpcStubBuffer_Connect((LPRPCSTUBBUFFER)stub,pUnkServer);
- *ppStub = (LPRPCSTUBBUFFER)stub;
+ hres = IRpcStubBuffer_Connect(&stub->IRpcStubBuffer_iface,pUnkServer);
+ *ppStub = &stub->IRpcStubBuffer_iface;
TRACE("IRpcStubBuffer: %p\n", stub);
if (hres)
ERR("Connect to pUnkServer failed?\n");
More information about the wine-cvs
mailing list