dpnet: Implement IDirectPlay8Server Initialize

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Sun Jan 19 21:02:48 CST 2014


Hi,

Changelog:
       dpnet: Implement IDirectPlay8Server Initialize


Best Regards
   Alistair Leslie-Hughes
-------------- next part --------------
>From d5d3b2a49dadce312829f6e34336a76f6f2cefa9 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Mon, 20 Jan 2014 10:27:28 +1100
Subject: [PATCH] Implement IDirectPlay8Server Initialize
To: wine-patches <wine-patches at winehq.org>

---
 dlls/dpnet/server.c       | 17 ++++++++++++++++-
 dlls/dpnet/tests/server.c |  3 +++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/dlls/dpnet/server.c b/dlls/dpnet/server.c
index 09e0809..3e026fc 100644
--- a/dlls/dpnet/server.c
+++ b/dlls/dpnet/server.c
@@ -39,6 +39,10 @@ typedef struct IDirectPlay8ServerImpl
 {
     IDirectPlay8Server IDirectPlay8Server_iface;
     LONG ref;
+
+    PFNDPNMESSAGEHANDLER msghandler;
+    DWORD flags;
+    void *usercontext;
 } IDirectPlay8ServerImpl;
 
 WINE_DEFAULT_DEBUG_CHANNEL(dpnet);
@@ -98,7 +102,15 @@ static HRESULT WINAPI IDirectPlay8ServerImpl_Initialize(IDirectPlay8Server *ifac
                                             PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags)
 {
     IDirectPlay8ServerImpl *This = impl_from_IDirectPlay8Server(iface);
-    FIXME("(%p)->(%p %p %d)\n", This, pvUserContext, pfn, dwFlags);
+    TRACE("(%p)->(%p %p %d)\n", This, pvUserContext, pfn, dwFlags);
+
+    if(!pfn)
+        return DPNERR_INVALIDPARAM;
+
+    This->usercontext = pvUserContext;
+    This->msghandler = pfn;
+    This->flags = dwFlags;
+
     return DPN_OK;
 }
 
@@ -391,6 +403,9 @@ HRESULT DPNET_CreateDirectPlay8Server(IClassFactory *iface, IUnknown *pUnkOuter,
 
     server->IDirectPlay8Server_iface.lpVtbl = &DirectPlay8ServerVtbl;
     server->ref = 1;
+    server->usercontext = NULL;
+    server->msghandler = NULL;
+    server->flags = 0;
 
     hr = IDirectPlay8Server_QueryInterface(&server->IDirectPlay8Server_iface, riid, ppv);
     IDirectPlay8Server_Release(&server->IDirectPlay8Server_iface);
diff --git a/dlls/dpnet/tests/server.c b/dlls/dpnet/tests/server.c
index 70cf16a..8f99fd3 100644
--- a/dlls/dpnet/tests/server.c
+++ b/dlls/dpnet/tests/server.c
@@ -39,6 +39,9 @@ static void create_server(void)
         hr = IDirectPlay8Server_Close(server, 0);
         todo_wine ok(hr == DPNERR_UNINITIALIZED, "got 0x%08x\n", hr);
 
+        hr = IDirectPlay8Server_Initialize(server, NULL, NULL, 0);
+        ok(hr == DPNERR_INVALIDPARAM, "got 0x%08x\n", hr);
+
         hr = IDirectPlay8Server_Initialize(server, NULL, DirectPlayMessageHandler, 0);
         ok(hr == S_OK, "got 0x%08x\n", hr);
         if(hr == S_OK)
-- 
1.8.3.2



More information about the wine-patches mailing list