Michael Stefaniuc : inetcomm: COM cleanup for the IMimeSecurity iface.

Alexandre Julliard julliard at winehq.org
Mon Mar 4 13:23:38 CST 2013


Module: wine
Branch: master
Commit: f44d66c6175240ad037021b9f15f39c652449112
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f44d66c6175240ad037021b9f15f39c652449112

Author: Michael Stefaniuc <mstefani at redhat.de>
Date:   Mon Mar  4 00:31:56 2013 +0100

inetcomm: COM cleanup for the IMimeSecurity iface.

---

 dlls/inetcomm/mimeole.c |   55 +++++++++++++++++++++++------------------------
 1 files changed, 27 insertions(+), 28 deletions(-)

diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c
index d897d38..2b7a0f3 100644
--- a/dlls/inetcomm/mimeole.c
+++ b/dlls/inetcomm/mimeole.c
@@ -2592,54 +2592,53 @@ HRESULT WINAPI MimeOleCreateVirtualStream(IStream **ppStream)
 
 typedef struct MimeSecurity
 {
-    const IMimeSecurityVtbl *lpVtbl;
-
-    LONG refs;
+    IMimeSecurity IMimeSecurity_iface;
+    LONG ref;
 } MimeSecurity;
 
-static HRESULT WINAPI MimeSecurity_QueryInterface(
-        IMimeSecurity* iface,
-        REFIID riid,
-        void** obj)
+static inline MimeSecurity *impl_from_IMimeSecurity(IMimeSecurity *iface)
 {
-    TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), obj);
+    return CONTAINING_RECORD(iface, MimeSecurity, IMimeSecurity_iface);
+}
+
+static HRESULT WINAPI MimeSecurity_QueryInterface(IMimeSecurity *iface, REFIID riid, void **ppv)
+{
+    TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv);
 
     if (IsEqualIID(riid, &IID_IUnknown) ||
         IsEqualIID(riid, &IID_IMimeSecurity))
     {
-        *obj = iface;
+        *ppv = iface;
         IMimeSecurity_AddRef(iface);
         return S_OK;
     }
 
     FIXME("no interface for %s\n", debugstr_guid(riid));
-    *obj = NULL;
+    *ppv = NULL;
     return E_NOINTERFACE;
 }
 
-static ULONG WINAPI MimeSecurity_AddRef(
-        IMimeSecurity* iface)
+static ULONG WINAPI MimeSecurity_AddRef(IMimeSecurity *iface)
 {
-    MimeSecurity *This = (MimeSecurity *)iface;
-    TRACE("(%p)->()\n", iface);
-    return InterlockedIncrement(&This->refs);
+    MimeSecurity *This = impl_from_IMimeSecurity(iface);
+    LONG ref = InterlockedIncrement(&This->ref);
+
+    TRACE("(%p) ref=%d\n", This, ref);
+
+    return ref;
 }
 
-static ULONG WINAPI MimeSecurity_Release(
-        IMimeSecurity* iface)
+static ULONG WINAPI MimeSecurity_Release(IMimeSecurity *iface)
 {
-    MimeSecurity *This = (MimeSecurity *)iface;
-    ULONG refs;
+    MimeSecurity *This = impl_from_IMimeSecurity(iface);
+    LONG ref = InterlockedDecrement(&This->ref);
 
-    TRACE("(%p)->()\n", iface);
+    TRACE("(%p) ref=%d\n", This, ref);
 
-    refs = InterlockedDecrement(&This->refs);
-    if (!refs)
-    {
+    if (!ref)
         HeapFree(GetProcessHeap(), 0, This);
-    }
 
-    return refs;
+    return ref;
 }
 
 static HRESULT WINAPI MimeSecurity_InitNew(
@@ -2764,10 +2763,10 @@ HRESULT MimeSecurity_create(IUnknown *outer, void **obj)
     This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
     if (!This) return E_OUTOFMEMORY;
 
-    This->lpVtbl = &MimeSecurityVtbl;
-    This->refs = 1;
+    This->IMimeSecurity_iface.lpVtbl = &MimeSecurityVtbl;
+    This->ref = 1;
 
-    *obj = &This->lpVtbl;
+    *obj = &This->IMimeSecurity_iface;
     return S_OK;
 }
 




More information about the wine-cvs mailing list