dpnet: Implement IDirectPlay8Client Initialize (try 2)
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Mon Feb 17 02:11:44 CST 2014
Hi,
Fixed patching issue.
The tests are just a copy of peer.c and changed to use interface
IDirectPlay8Client.
Changelog:
dpnet: Implement IDirectPlay8Client Initialize
Best Regards
Alistair Leslie-Hughes
-------------- next part --------------
>From 441bc30310810783d316e5ad8be6423a29287ade Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Mon, 17 Feb 2014 19:05:07 +1100
Subject: [PATCH] Implement IDirectPlay8Client Initialize
To: wine-patches <wine-patches at winehq.org>
---
dlls/dpnet/client.c | 18 +++++++++++++++---
dlls/dpnet/dpnet_private.h | 10 +++++++---
dlls/dpnet/tests/Makefile.in | 1 +
3 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/dlls/dpnet/client.c b/dlls/dpnet/client.c
index 9668a68..38ae904 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,
@@ -291,6 +300,9 @@ HRESULT DPNET_CreateDirectPlay8Client(IClassFactory *iface, IUnknown *pUnkOuter,
client->IDirectPlay8Client_iface.lpVtbl = &DirectPlay8Client_Vtbl;
client->ref = 1;
+ client->usercontext = NULL;
+ client->msghandler = NULL;
+ client->flags = 0;
hr = IDirectPlay8ClientImpl_QueryInterface(&client->IDirectPlay8Client_iface, riid, ppv);
IDirectPlay8ClientImpl_Release(&client->IDirectPlay8Client_iface);
diff --git a/dlls/dpnet/dpnet_private.h b/dlls/dpnet/dpnet_private.h
index 4a42eae..54a22f9 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/Makefile.in b/dlls/dpnet/tests/Makefile.in
index 9220121..5697f47 100644
--- a/dlls/dpnet/tests/Makefile.in
+++ b/dlls/dpnet/tests/Makefile.in
@@ -2,5 +2,6 @@ TESTDLL = dpnet.dll
IMPORTS = dpnet ole32
C_SRCS = \
+ client.c \
peer.c \
server.c
--
1.8.3.2
More information about the wine-patches
mailing list