Michael Stefaniuc : inetcomm: COM cleanup for the IMimeBody iface.
Alexandre Julliard
julliard at winehq.org
Mon Mar 4 13:23:38 CST 2013
Module: wine
Branch: master
Commit: 4e35ec47773ed9bb84180ec867a2a39b6278e4cb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4e35ec47773ed9bb84180ec867a2a39b6278e4cb
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Mon Mar 4 00:33:16 2013 +0100
inetcomm: COM cleanup for the IMimeBody iface.
---
dlls/inetcomm/mimeole.c | 34 ++++++++++++++++++----------------
1 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c
index c1fed51..58a4a5f 100644
--- a/dlls/inetcomm/mimeole.c
+++ b/dlls/inetcomm/mimeole.c
@@ -94,8 +94,8 @@ typedef struct
typedef struct MimeBody
{
- const IMimeBodyVtbl *lpVtbl;
- LONG refs;
+ IMimeBody IMimeBody_iface;
+ LONG ref;
HBODY handle;
@@ -110,9 +110,9 @@ typedef struct MimeBody
BODYOFFSETS body_offsets;
} MimeBody;
-static inline MimeBody *impl_from_IMimeBody( IMimeBody *iface )
+static inline MimeBody *impl_from_IMimeBody(IMimeBody *iface)
{
- return (MimeBody *)((char*)iface - FIELD_OFFSET(MimeBody, lpVtbl));
+ return CONTAINING_RECORD(iface, MimeBody, IMimeBody_iface);
}
static LPSTR strdupA(LPCSTR str)
@@ -523,22 +523,24 @@ static HRESULT WINAPI MimeBody_QueryInterface(IMimeBody* iface,
return E_NOINTERFACE;
}
-static ULONG WINAPI MimeBody_AddRef(IMimeBody* iface)
+static ULONG WINAPI MimeBody_AddRef(IMimeBody *iface)
{
MimeBody *This = impl_from_IMimeBody(iface);
- TRACE("(%p)->()\n", iface);
- return InterlockedIncrement(&This->refs);
+ LONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ return ref;
}
-static ULONG WINAPI MimeBody_Release(IMimeBody* iface)
+static ULONG WINAPI MimeBody_Release(IMimeBody *iface)
{
MimeBody *This = impl_from_IMimeBody(iface);
- ULONG refs;
+ LONG ref = InterlockedDecrement(&This->ref);
- TRACE("(%p)->()\n", iface);
+ TRACE("(%p) ref=%d\n", This, ref);
- refs = InterlockedDecrement(&This->refs);
- if (!refs)
+ if (!ref)
{
empty_header_list(&This->headers);
empty_new_prop_list(&This->new_props);
@@ -551,7 +553,7 @@ static ULONG WINAPI MimeBody_Release(IMimeBody* iface)
HeapFree(GetProcessHeap(), 0, This);
}
- return refs;
+ return ref;
}
static HRESULT WINAPI MimeBody_GetClassID(
@@ -1109,8 +1111,8 @@ HRESULT MimeBody_create(IUnknown *outer, void **obj)
This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
if (!This) return E_OUTOFMEMORY;
- This->lpVtbl = &body_vtbl;
- This->refs = 1;
+ This->IMimeBody_iface.lpVtbl = &body_vtbl;
+ This->ref = 1;
This->handle = NULL;
list_init(&This->headers);
list_init(&This->new_props);
@@ -1125,7 +1127,7 @@ HRESULT MimeBody_create(IUnknown *outer, void **obj)
body_offsets.cbBodyStart = body_offsets.cbBodyEnd = 0;
MimeBody_set_offsets(This, &body_offsets);
- *obj = &This->lpVtbl;
+ *obj = &This->IMimeBody_iface;
return S_OK;
}
More information about the wine-cvs
mailing list