[2/2] dpnet: Implement IDirectPlay8Client Initialize

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Mon May 5 01:46:19 CDT 2014


Hi,


Changelog:
     dpnet: Implement IDirectPlay8Client Initialize


Best Regards
  Alistair Leslie-Hughes
-------------- next part --------------
>From 41cc934c43d59d2c8fb115141b40499e4e343555 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Sat, 3 May 2014 15:45:06 +1000
Subject: [PATCH] Implement IDirectPlay8Client Initialize
To: wine-patches <wine-patches at winehq.org>

---
 dlls/dpnet/client.c        | 15 ++++++++++++---
 dlls/dpnet/dpnet_private.h | 10 +++++++---
 dlls/dpnet/tests/client.c  |  2 +-
 3 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/dlls/dpnet/client.c b/dlls/dpnet/client.c
index 9668a68..43ffb59 100644
--- a/dlls/dpnet/client.c
+++ b/dlls/dpnet/client.c
@@ -86,9 +86,18 @@ static ULONG WINAPI IDirectPlay8ClientImpl_Release(IDirectPlay8Client *iface)
 static HRESULT WINAPI IDirectPlay8ClientImpl_Initialize(IDirectPlay8Client *iface,
         void * const pvUserContext, const PFNDPNMESSAGEHANDLER pfn, const DWORD dwFlags)
 {
-  IDirectPlay8ClientImpl *This = impl_from_IDirectPlay8Client(iface);
-  FIXME("(%p):(%p,%p,%x): Stub\n", This, pvUserContext, pfn, dwFlags);
-  return DPN_OK; 
+    IDirectPlay8ClientImpl *This = impl_from_IDirectPlay8Client(iface);
+
+    TRACE("(%p):(%p,%p,%x)\n", This, pvUserContext, pfn, dwFlags);
+
+    if(!pfn)
+        return DPNERR_INVALIDPARAM;
+
+    This->usercontext = pvUserContext;
+    This->msghandler = pfn;
+    This->flags = dwFlags;
+
+    return DPN_OK;
 }
 
 static HRESULT WINAPI IDirectPlay8ClientImpl_EnumServiceProviders(IDirectPlay8Client *iface,
diff --git a/dlls/dpnet/dpnet_private.h b/dlls/dpnet/dpnet_private.h
index 3c2d0f9..cfd4453 100644
--- a/dlls/dpnet/dpnet_private.h
+++ b/dlls/dpnet/dpnet_private.h
@@ -48,9 +48,13 @@ typedef struct IDirectPlay8ThreadPoolImpl IDirectPlay8ThreadPoolImpl;
  */
 struct IDirectPlay8ClientImpl
 {
-  IDirectPlay8Client IDirectPlay8Client_iface;
-  LONG ref;
-  /* IDirectPlay8Client fields */
+    IDirectPlay8Client IDirectPlay8Client_iface;
+    LONG ref;
+
+    /* IDirectPlay8Client fields */
+    PFNDPNMESSAGEHANDLER msghandler;
+    DWORD flags;
+    void *usercontext;
 };
 
 /* ------------------- */
diff --git a/dlls/dpnet/tests/client.c b/dlls/dpnet/tests/client.c
index cde8d06..2da6c06 100644
--- a/dlls/dpnet/tests/client.c
+++ b/dlls/dpnet/tests/client.c
@@ -43,7 +43,7 @@ static void test_init_dp(void)
     ok(hr == S_OK, "CoCreateInstance failed with 0x%x\n", hr);
 
     hr = IDirectPlay8Client_Initialize(client, NULL, NULL, 0);
-    todo_wine ok(hr == DPNERR_INVALIDPARAM, "got %x\n", hr);
+    ok(hr == DPNERR_INVALIDPARAM, "got %x\n", hr);
 
     hr = IDirectPlay8Client_Initialize(client, NULL, DirectPlayMessageHandler, 0);
     ok(hr == S_OK, "IDirectPlay8Client_Initialize failed with %x\n", hr);
-- 
1.9.1



More information about the wine-patches mailing list