From: Alistair Leslie-Hughes Subject: [PATCH 1/2] dpnet: Implement IDirectPlay8LobbyClient Initialize Message-Id: Date: Tue, 18 Oct 2016 07:13:47 +0000 In-Reply-To: <20161018071314.9437-1-leslie_alistair@hotmail.com> References: <20161018071314.9437-1-leslie_alistair@hotmail.com> Signed-off-by: Alistair Leslie-Hughes --- dlls/dpnet/client.c | 15 +++++++++++++-- dlls/dpnet/tests/client.c | 5 ++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/dlls/dpnet/client.c b/dlls/dpnet/client.c index f865aa7..f6ab0f7 100644 --- a/dlls/dpnet/client.c +++ b/dlls/dpnet/client.c @@ -45,6 +45,10 @@ typedef struct IDirectPlay8LobbyClientImpl { IDirectPlay8LobbyClient IDirectPlay8LobbyClient_iface; LONG ref; + + PFNDPNMESSAGEHANDLER msghandler; + DWORD flags; + void *usercontext; } IDirectPlay8LobbyClientImpl; static inline IDirectPlay8LobbyClientImpl *impl_from_IDirectPlay8LobbyClient(IDirectPlay8LobbyClient *iface) @@ -1093,9 +1097,16 @@ static HRESULT WINAPI lobbyclient_Initialize(IDirectPlay8LobbyClient *iface, voi { IDirectPlay8LobbyClientImpl *This = impl_from_IDirectPlay8LobbyClient(iface); - FIXME("(%p)->(%p %p 0x%08x)\n", This, context, msghandler, flags); + TRACE("(%p):(%p,%p,%x)\n", This, context, msghandler, flags); - return E_NOTIMPL; + if(!msghandler) + return E_POINTER; + + This->usercontext = context; + This->msghandler = msghandler; + This->flags = flags; + + return DPN_OK; } static HRESULT WINAPI lobbyclient_EnumLocalPrograms(IDirectPlay8LobbyClient *iface, GUID* guidapplication, diff --git a/dlls/dpnet/tests/client.c b/dlls/dpnet/tests/client.c index 723f7be..753d3ad 100644 --- a/dlls/dpnet/tests/client.c +++ b/dlls/dpnet/tests/client.c @@ -221,8 +221,11 @@ static void test_lobbyclient(void) ok(hr == S_OK, "Failed to create object\n"); if(SUCCEEDED(hr)) { + hr = IDirectPlay8LobbyClient_Initialize(client, NULL, NULL, 0); + ok(hr == E_POINTER, "got 0x%08x\n", hr); + hr = IDirectPlay8LobbyClient_Initialize(client, NULL, DirectPlayLobbyClientMessageHandler, 0); - todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); + ok(hr == S_OK, "got 0x%08x\n", hr); hr = IDirectPlay8LobbyClient_Close(client, 0); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); -- 1.9.1