[2/2] dpnet: Implement IDirectPlay8Client Initialize (try 2)
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Tue May 6 20:39:41 CDT 2014
Hi,
Just a rebase.
Changelog:
dpnet: Implement IDirectPlay8Client Initialize
Best Regards
Alistair Leslie-Hughes
-------------- next part --------------
>From 22648752aafca0509d080c0cd1ce9e021ebf1cf4 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 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);
--
1.9.1
More information about the wine-patches
mailing list