Module: wine Branch: master Commit: 0d8f86c66de4fc75793f777967c7df2d9202776b URL: http://source.winehq.org/git/wine.git/?a=commit;h=0d8f86c66de4fc75793f777967...
Author: Alistair Leslie-Hughes leslie_alistair@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);