dpnet: Cleanup IDirectPlay8Client
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Sun Jan 19 21:00:47 CST 2014
Hi,
Changelog:
dpnet: Cleanup IDirectPlay8Client
Best Regards
Alistair Leslie-Hughes
-------------- next part --------------
>From 6240369f2b8cd67bbbd94c0f154753ce6d9ac92b Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Fri, 17 Jan 2014 14:38:34 +1100
Subject: [PATCH] Cleanup IDirectPlay8Client
To: wine-patches <wine-patches at winehq.org>
---
dlls/dpnet/client.c | 56 +++++++++++++++++++++++++++++-----------------
dlls/dpnet/dpnet_private.h | 15 -------------
2 files changed, 36 insertions(+), 35 deletions(-)
diff --git a/dlls/dpnet/client.c b/dlls/dpnet/client.c
index 637dcb8..3307321 100644
--- a/dlls/dpnet/client.c
+++ b/dlls/dpnet/client.c
@@ -36,6 +36,12 @@
WINE_DEFAULT_DEBUG_CHANNEL(dpnet);
+typedef struct IDirectPlay8ClientImpl
+{
+ IDirectPlay8Client IDirectPlay8Client_iface;
+ LONG ref;
+} IDirectPlay8ClientImpl;
+
static inline IDirectPlay8ClientImpl *impl_from_IDirectPlay8Client(IDirectPlay8Client *iface)
{
return CONTAINING_RECORD(iface, IDirectPlay8ClientImpl, IDirectPlay8Client_iface);
@@ -61,24 +67,24 @@ static HRESULT WINAPI IDirectPlay8ClientImpl_QueryInterface(IDirectPlay8Client *
static ULONG WINAPI IDirectPlay8ClientImpl_AddRef(IDirectPlay8Client *iface)
{
IDirectPlay8ClientImpl *This = impl_from_IDirectPlay8Client(iface);
- ULONG refCount = InterlockedIncrement(&This->ref);
+ ULONG ref = InterlockedIncrement(&This->ref);
- TRACE("(%p)->(ref before=%u)\n", This, refCount - 1);
+ TRACE("(%p) ref=%d\n", This, ref);
- return refCount;
+ return ref;
}
static ULONG WINAPI IDirectPlay8ClientImpl_Release(IDirectPlay8Client *iface)
{
IDirectPlay8ClientImpl *This = impl_from_IDirectPlay8Client(iface);
- ULONG refCount = InterlockedDecrement(&This->ref);
+ ULONG ref = InterlockedDecrement(&This->ref);
- TRACE("(%p)->(ref before=%u)\n", This, refCount + 1);
+ TRACE("(%p) ref=%d\n", This, ref);;
- if (!refCount) {
+ if (!ref) {
HeapFree(GetProcessHeap(), 0, This);
}
- return refCount;
+ return ref;
}
/* IDirectPlay8Client Interface follow: */
@@ -273,17 +279,27 @@ static const IDirectPlay8ClientVtbl DirectPlay8Client_Vtbl =
IDirectPlay8ClientImpl_RegisterLobby
};
-HRESULT DPNET_CreateDirectPlay8Client(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj) {
- IDirectPlay8ClientImpl* client;
-
- TRACE("(%p, %s, %p)\n", punkOuter, debugstr_guid(riid), ppobj);
-
- client = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectPlay8ClientImpl));
- if (NULL == client) {
- *ppobj = NULL;
- return E_OUTOFMEMORY;
- }
- client->IDirectPlay8Client_iface.lpVtbl = &DirectPlay8Client_Vtbl;
- client->ref = 0; /* will be inited with QueryInterface */
- return IDirectPlay8ClientImpl_QueryInterface(&client->IDirectPlay8Client_iface, riid, ppobj);
+HRESULT DPNET_CreateDirectPlay8Client(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv)
+{
+ IDirectPlay8ClientImpl* client;
+ HRESULT hr;
+
+ TRACE("(%p, %s, %p)\n", pUnkOuter, debugstr_guid(riid), ppv);
+
+ *ppv = NULL;
+
+ if(pUnkOuter)
+ return CLASS_E_NOAGGREGATION;
+
+ client = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectPlay8ClientImpl));
+ if (!client)
+ return E_OUTOFMEMORY;
+
+ client->IDirectPlay8Client_iface.lpVtbl = &DirectPlay8Client_Vtbl;
+ client->ref = 1;
+
+ hr = IDirectPlay8ClientImpl_QueryInterface(&client->IDirectPlay8Client_iface, riid, ppv);
+ IDirectPlay8ClientImpl_Release(&client->IDirectPlay8Client_iface);
+
+ return hr;
}
diff --git a/dlls/dpnet/dpnet_private.h b/dlls/dpnet/dpnet_private.h
index 4a42eae..dbfc1a7 100644
--- a/dlls/dpnet/dpnet_private.h
+++ b/dlls/dpnet/dpnet_private.h
@@ -32,25 +32,10 @@
*/
/* DirectPlay8 Interfaces: */
-typedef struct IDirectPlay8ClientImpl IDirectPlay8ClientImpl;
typedef struct IDirectPlay8AddressImpl IDirectPlay8AddressImpl;
typedef struct IDirectPlay8LobbiedApplicationImpl IDirectPlay8LobbiedApplicationImpl;
typedef struct IDirectPlay8ThreadPoolImpl IDirectPlay8ThreadPoolImpl;
-/* ------------------ */
-/* IDirectPlay8Client */
-/* ------------------ */
-
-/*****************************************************************************
- * IDirectPlay8Client implementation structure
- */
-struct IDirectPlay8ClientImpl
-{
- IDirectPlay8Client IDirectPlay8Client_iface;
- LONG ref;
- /* IDirectPlay8Client fields */
-};
-
/* ------------------- */
/* IDirectPlay8Address */
/* ------------------- */
--
1.8.3.2
More information about the wine-patches
mailing list