Alistair Leslie-Hughes : dpnet: Store information when Initialize is called.
Alexandre Julliard
julliard at winehq.org
Tue Feb 4 13:55:05 CST 2014
Module: wine
Branch: master
Commit: 658a5f450bcdb3f564bdc0684a461033602e0f8e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=658a5f450bcdb3f564bdc0684a461033602e0f8e
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Mon Jan 20 09:59:41 2014 +1100
dpnet: Store information when Initialize is called.
---
dlls/dpnet/peer.c | 16 ++++++++++++++++
dlls/dpnet/tests/peer.c | 3 +++
2 files changed, 19 insertions(+)
diff --git a/dlls/dpnet/peer.c b/dlls/dpnet/peer.c
index 1b287dd..7b962a4 100644
--- a/dlls/dpnet/peer.c
+++ b/dlls/dpnet/peer.c
@@ -43,6 +43,10 @@ typedef struct IDirectPlay8PeerImpl
{
IDirectPlay8Peer IDirectPlay8Peer_iface;
LONG ref;
+
+ PFNDPNMESSAGEHANDLER msghandler;
+ DWORD flags;
+ void *usercontext;
} IDirectPlay8PeerImpl;
static inline IDirectPlay8PeerImpl *impl_from_IDirectPlay8Peer(IDirectPlay8Peer *iface)
@@ -96,8 +100,17 @@ static ULONG WINAPI IDirectPlay8PeerImpl_Release(IDirectPlay8Peer *iface)
static HRESULT WINAPI IDirectPlay8PeerImpl_Initialize(IDirectPlay8Peer *iface,
void * const pvUserContext, const PFNDPNMESSAGEHANDLER pfn, const DWORD dwFlags)
{
+ IDirectPlay8PeerImpl* This = impl_from_IDirectPlay8Peer(iface);
+
TRACE("(%p)->(%p,%p,%x): stub\n", iface, pvUserContext, pfn, dwFlags);
+ if(!pfn)
+ return DPNERR_INVALIDPARAM;
+
+ This->usercontext = pvUserContext;
+ This->msghandler = pfn;
+ This->flags = dwFlags;
+
return DPN_OK;
}
@@ -502,6 +515,9 @@ HRESULT DPNET_CreateDirectPlay8Peer(IClassFactory *iface, IUnknown *pUnkOuter, R
Client->IDirectPlay8Peer_iface.lpVtbl = &DirectPlay8Peer_Vtbl;
Client->ref = 1;
+ Client->usercontext = NULL;
+ Client->msghandler = NULL;
+ Client->flags = 0;
ret = IDirectPlay8Peer_QueryInterface(&Client->IDirectPlay8Peer_iface, riid, ppobj);
IDirectPlay8Peer_Release(&Client->IDirectPlay8Peer_iface);
diff --git a/dlls/dpnet/tests/peer.c b/dlls/dpnet/tests/peer.c
index a9ab01d..8ae0afe 100644
--- a/dlls/dpnet/tests/peer.c
+++ b/dlls/dpnet/tests/peer.c
@@ -51,6 +51,9 @@ static void test_init_dp(void)
hr = CoCreateInstance(&CLSID_DirectPlay8Peer, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectPlay8Peer, (void **)&peer);
ok(hr == S_OK, "CoCreateInstance failed with 0x%x\n", hr);
+ hr = IDirectPlay8Peer_Initialize(peer, NULL, NULL, 0);
+ ok(hr == DPNERR_INVALIDPARAM, "got %x\n", hr);
+
hr = IDirectPlay8Peer_Initialize(peer, NULL, DirectPlayMessageHandler, 0);
ok(hr == S_OK, "IDirectPlay8Peer_Initialize failed with %x\n", hr);
}
More information about the wine-cvs
mailing list