Alistair Leslie-Hughes : dpnet: Implement IDirectPlay8Client Initialize.

Alexandre Julliard julliard at winehq.org
Thu May 8 13:35:20 CDT 2014


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

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Sat May  3 15:45:06 2014 +1000

dpnet: Implement IDirectPlay8Client Initialize.

---

 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 00ea94b..34d2aee 100644
--- a/dlls/dpnet/dpnet_private.h
+++ b/dlls/dpnet/dpnet_private.h
@@ -46,9 +46,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 890f218..0df99dd 100644
--- a/dlls/dpnet/tests/client.c
+++ b/dlls/dpnet/tests/client.c
@@ -44,7 +44,7 @@ static BOOL 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);




More information about the wine-cvs mailing list