ReactOS 0.4.17-dev-934-g091855f
client.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "objbase.h"
#include "wine/debug.h"
#include "dpnet_private.h"
Include dependency graph for client.c:

Go to the source code of this file.

Classes

struct  IDirectPlay8LobbyClientImpl
 

Macros

#define COBJMACROS
 

Typedefs

typedef struct IDirectPlay8LobbyClientImpl IDirectPlay8LobbyClientImpl
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (dpnet)
 
static IDirectPlay8LobbyClientImpl * impl_from_IDirectPlay8LobbyClient (IDirectPlay8LobbyClient *iface)
 
static IDirectPlay8ClientImpl * impl_from_IDirectPlay8Client (IDirectPlay8Client *iface)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_QueryInterface (IDirectPlay8Client *iface, REFIID riid, void **ret_iface)
 
static ULONG WINAPI IDirectPlay8ClientImpl_AddRef (IDirectPlay8Client *iface)
 
static ULONG WINAPI IDirectPlay8ClientImpl_Release (IDirectPlay8Client *iface)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_Initialize (IDirectPlay8Client *iface, void *const pvUserContext, const PFNDPNMESSAGEHANDLER pfn, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_EnumServiceProviders (IDirectPlay8Client *iface, const GUID *const pguidServiceProvider, const GUID *const pguidApplication, DPN_SERVICE_PROVIDER_INFO *const pSPInfoBuffer, PDWORD const pcbEnumData, PDWORD const pcReturned, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_EnumHosts (IDirectPlay8Client *iface, PDPN_APPLICATION_DESC const pApplicationDesc, IDirectPlay8Address *const pAddrHost, IDirectPlay8Address *const pDeviceInfo, void *const pUserEnumData, const DWORD dwUserEnumDataSize, const DWORD dwEnumCount, const DWORD dwRetryInterval, const DWORD dwTimeOut, void *const pvUserContext, DPNHANDLE *const pAsyncHandle, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_CancelAsyncOperation (IDirectPlay8Client *iface, const DPNHANDLE hAsyncHandle, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_Connect (IDirectPlay8Client *iface, const DPN_APPLICATION_DESC *const pdnAppDesc, IDirectPlay8Address *const pHostAddr, IDirectPlay8Address *const pDeviceInfo, const DPN_SECURITY_DESC *const pdnSecurity, const DPN_SECURITY_CREDENTIALS *const pdnCredentials, const void *const pvUserConnectData, const DWORD dwUserConnectDataSize, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_Send (IDirectPlay8Client *iface, const DPN_BUFFER_DESC *const prgBufferDesc, const DWORD cBufferDesc, const DWORD dwTimeOut, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_GetSendQueueInfo (IDirectPlay8Client *iface, DWORD *const pdwNumMsgs, DWORD *const pdwNumBytes, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_GetApplicationDesc (IDirectPlay8Client *iface, DPN_APPLICATION_DESC *const pAppDescBuffer, DWORD *const pcbDataSize, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_SetClientInfo (IDirectPlay8Client *iface, const DPN_PLAYER_INFO *const pdpnPlayerInfo, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_GetServerInfo (IDirectPlay8Client *iface, DPN_PLAYER_INFO *const pdpnPlayerInfo, DWORD *const pdwSize, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_GetServerAddress (IDirectPlay8Client *iface, IDirectPlay8Address **const pAddress, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_Close (IDirectPlay8Client *iface, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_ReturnBuffer (IDirectPlay8Client *iface, const DPNHANDLE hBufferHandle, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_GetCaps (IDirectPlay8Client *iface, DPN_CAPS *const pdpCaps, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_SetCaps (IDirectPlay8Client *iface, const DPN_CAPS *const pdpCaps, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_SetSPCaps (IDirectPlay8Client *iface, const GUID *const pguidSP, const DPN_SP_CAPS *const pdpspCaps, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_GetSPCaps (IDirectPlay8Client *iface, const GUID *const pguidSP, DPN_SP_CAPS *const pdpspCaps, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_GetConnectionInfo (IDirectPlay8Client *iface, DPN_CONNECTION_INFO *const pdpConnectionInfo, const DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ClientImpl_RegisterLobby (IDirectPlay8Client *iface, const DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *const pIDP8LobbiedApplication, const DWORD dwFlags)
 
HRESULT DPNET_CreateDirectPlay8Client (IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv)
 
static HRESULT WINAPI lobbyclient_QueryInterface (IDirectPlay8LobbyClient *iface, REFIID riid, void **obj)
 
static ULONG WINAPI lobbyclient_AddRef (IDirectPlay8LobbyClient *iface)
 
static ULONG WINAPI lobbyclient_Release (IDirectPlay8LobbyClient *iface)
 
static HRESULT WINAPI lobbyclient_Initialize (IDirectPlay8LobbyClient *iface, void *context, PFNDPNMESSAGEHANDLER msghandler, DWORD flags)
 
static HRESULT WINAPI lobbyclient_EnumLocalPrograms (IDirectPlay8LobbyClient *iface, GUID *guidapplication, BYTE *enumdata, DWORD *enumDataSize, DWORD *items, DWORD flags)
 
static HRESULT WINAPI lobbyclient_ConnectApplication (IDirectPlay8LobbyClient *iface, DPL_CONNECT_INFO *connectioninfo, void *connectioncontext, DPNHANDLE *application, DWORD timeout, DWORD flags)
 
static HRESULT WINAPI lobbyclient_Send (IDirectPlay8LobbyClient *iface, DPNHANDLE connection, BYTE *buffer, DWORD buffersize, DWORD flags)
 
static HRESULT WINAPI lobbyclient_ReleaseApplication (IDirectPlay8LobbyClient *iface, DPNHANDLE connection, DWORD flags)
 
static HRESULT WINAPI lobbyclient_Close (IDirectPlay8LobbyClient *iface, DWORD flags)
 
static HRESULT WINAPI lobbyclient_GetConnectionSettings (IDirectPlay8LobbyClient *iface, DPNHANDLE connection, DPL_CONNECTION_SETTINGS *sessioninfo, DWORD *infosize, DWORD flags)
 
static HRESULT WINAPI lobbyclient_SetConnectionSettings (IDirectPlay8LobbyClient *iface, DPNHANDLE connection, const DPL_CONNECTION_SETTINGS *sessioninfo, DWORD flags)
 
HRESULT DPNET_CreateDirectPlay8LobbyClient (IClassFactory *iface, IUnknown *outer, REFIID riid, void **obj)
 

Variables

static const IDirectPlay8ClientVtbl DirectPlay8Client_Vtbl
 
static const IDirectPlay8LobbyClientVtbl DirectPlay8LobbiedClient_Vtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 25 of file client.c.

Typedef Documentation

◆ IDirectPlay8LobbyClientImpl

Function Documentation

◆ DPNET_CreateDirectPlay8Client()

HRESULT DPNET_CreateDirectPlay8Client ( IClassFactory *  iface,
IUnknown *  pUnkOuter,
REFIID  riid,
void **  ppv 
)

Definition at line 384 of file client.c.

385{
387 HRESULT hr;
388
389 TRACE("(%p, %s, %p)\n", pUnkOuter, debugstr_guid(riid), ppv);
390
391 *ppv = NULL;
392
393 if(pUnkOuter)
395
397 if (!client)
398 return E_OUTOFMEMORY;
399
400 client->IDirectPlay8Client_iface.lpVtbl = &DirectPlay8Client_Vtbl;
401 client->ref = 1;
402
403 init_dpn_sp_caps(&client->spcaps);
404
405 hr = IDirectPlay8ClientImpl_QueryInterface(&client->IDirectPlay8Client_iface, riid, ppv);
406 IDirectPlay8ClientImpl_Release(&client->IDirectPlay8Client_iface);
407
408 return hr;
409}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
static const IDirectPlay8ClientVtbl DirectPlay8Client_Vtbl
Definition: client.c:358
static HRESULT WINAPI IDirectPlay8ClientImpl_QueryInterface(IDirectPlay8Client *iface, REFIID riid, void **ret_iface)
Definition: client.c:58
static ULONG WINAPI IDirectPlay8ClientImpl_Release(IDirectPlay8Client *iface)
Definition: client.c:81
void init_dpn_sp_caps(DPN_SP_CAPS *dpnspcaps)
Definition: peer.c:622
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define calloc
Definition: rosglue.h:14
static FILE * client
Definition: client.c:37
#define TRACE(s)
Definition: solgame.cpp:4
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:3771

◆ DPNET_CreateDirectPlay8LobbyClient()

HRESULT DPNET_CreateDirectPlay8LobbyClient ( IClassFactory *  iface,
IUnknown *  outer,
REFIID  riid,
void **  obj 
)

Definition at line 560 of file client.c.

561{
563 HRESULT ret;
564
565 TRACE("%p (%p, %s, %p)\n", iface, outer, debugstr_guid(riid), obj);
566
567 client = calloc(1, sizeof(*client));
568 if (!client)
569 {
570 *obj = NULL;
571 return E_OUTOFMEMORY;
572 }
573
574 client->IDirectPlay8LobbyClient_iface.lpVtbl = &DirectPlay8LobbiedClient_Vtbl;
575 client->ref = 1;
576
577 ret = lobbyclient_QueryInterface(&client->IDirectPlay8LobbyClient_iface, riid, obj);
578 lobbyclient_Release(&client->IDirectPlay8LobbyClient_iface);
579
580 return ret;
581}
static ULONG WINAPI lobbyclient_Release(IDirectPlay8LobbyClient *iface)
Definition: client.c:442
static const IDirectPlay8LobbyClientVtbl DirectPlay8LobbiedClient_Vtbl
Definition: client.c:545
static HRESULT WINAPI lobbyclient_QueryInterface(IDirectPlay8LobbyClient *iface, REFIID riid, void **obj)
Definition: client.c:411
return ret
Definition: mutex.c:147
static IUnknown * outer
Definition: compobj.c:82

◆ IDirectPlay8ClientImpl_AddRef()

static ULONG WINAPI IDirectPlay8ClientImpl_AddRef ( IDirectPlay8Client *  iface)
static

Definition at line 71 of file client.c.

72{
75
76 TRACE("(%p) ref=%lu\n", This, ref);
77
78 return ref;
79}
#define InterlockedIncrement
Definition: armddk.h:53
static IDirectPlay8ClientImpl * impl_from_IDirectPlay8Client(IDirectPlay8Client *iface)
Definition: client.c:52
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59

◆ IDirectPlay8ClientImpl_CancelAsyncOperation()

static HRESULT WINAPI IDirectPlay8ClientImpl_CancelAsyncOperation ( IDirectPlay8Client *  iface,
const DPNHANDLE  hAsyncHandle,
const DWORD  dwFlags 
)
static

Definition at line 160 of file client.c.

162{
164 FIXME("(%p):(%lu,%lx): Stub\n", This, hAsyncHandle, dwFlags);
165 return DPN_OK;
166}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define DPN_OK
Definition: dplay8.h:75
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141

◆ IDirectPlay8ClientImpl_Close()

static HRESULT WINAPI IDirectPlay8ClientImpl_Close ( IDirectPlay8Client *  iface,
const DWORD  dwFlags 
)
static

Definition at line 271 of file client.c.

272{
274 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
275
276 This->msghandler = NULL;
277
278 return DPN_OK;
279}

◆ IDirectPlay8ClientImpl_Connect()

static HRESULT WINAPI IDirectPlay8ClientImpl_Connect ( IDirectPlay8Client *  iface,
const DPN_APPLICATION_DESC *const  pdnAppDesc,
IDirectPlay8Address *const  pHostAddr,
IDirectPlay8Address *const  pDeviceInfo,
const DPN_SECURITY_DESC *const  pdnSecurity,
const DPN_SECURITY_CREDENTIALS *const  pdnCredentials,
const void *const  pvUserConnectData,
const DWORD  dwUserConnectDataSize,
void *const  pvAsyncContext,
DPNHANDLE *const  phAsyncHandle,
const DWORD  dwFlags 
)
static

Definition at line 168 of file client.c.

174{
176 FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvAsyncContext, phAsyncHandle, dwFlags);
177 return DPN_OK;
178}

◆ IDirectPlay8ClientImpl_EnumHosts()

static HRESULT WINAPI IDirectPlay8ClientImpl_EnumHosts ( IDirectPlay8Client *  iface,
PDPN_APPLICATION_DESC const  pApplicationDesc,
IDirectPlay8Address *const  pAddrHost,
IDirectPlay8Address *const  pDeviceInfo,
void *const  pUserEnumData,
const DWORD  dwUserEnumDataSize,
const DWORD  dwEnumCount,
const DWORD  dwRetryInterval,
const DWORD  dwTimeOut,
void *const  pvUserContext,
DPNHANDLE *const  pAsyncHandle,
const DWORD  dwFlags 
)
static

Definition at line 136 of file client.c.

142{
144
145 FIXME("(%p):(%p,%p,%p,%p,%lu,%lu,%lu,%lu,%p,%p,%lx)\n", This, pApplicationDesc, pAddrHost, pDeviceInfo, pUserEnumData,
146 dwUserEnumDataSize, dwEnumCount, dwRetryInterval, dwTimeOut, pvUserContext, pAsyncHandle, dwFlags);
147
148 if(!This->msghandler)
150
151 if((dwFlags & DPNENUMHOSTS_SYNC) && pAsyncHandle)
152 return DPNERR_INVALIDPARAM;
153
154 if(dwUserEnumDataSize > This->spcaps.dwMaxEnumPayloadSize)
156
158}
#define DPNERR_INVALIDPARAM
Definition: dplay8.h:77
#define DPNERR_ENUMQUERYTOOLARGE
Definition: dplay8.h:103
#define DPNSUCCESS_PENDING
Definition: dplay8.h:73
#define DPNENUMHOSTS_SYNC
Definition: dplay8.h:179
#define DPNERR_UNINITIALIZED
Definition: dplay8.h:146

◆ IDirectPlay8ClientImpl_EnumServiceProviders()

static HRESULT WINAPI IDirectPlay8ClientImpl_EnumServiceProviders ( IDirectPlay8Client *  iface,
const GUID *const  pguidServiceProvider,
const GUID *const  pguidApplication,
DPN_SERVICE_PROVIDER_INFO *const  pSPInfoBuffer,
PDWORD const  pcbEnumData,
PDWORD const  pcReturned,
const DWORD  dwFlags 
)
static

Definition at line 118 of file client.c.

122{
124 TRACE("(%p)->(%s,%s,%p,%p,%p,%lx)\n", This, debugstr_guid(pguidServiceProvider), debugstr_guid(pguidApplication),
125 pSPInfoBuffer, pcbEnumData, pcReturned, dwFlags);
126
127 if(dwFlags)
128 FIXME("Unhandled flags %lx\n", dwFlags);
129
130 if(pguidApplication)
131 FIXME("Application guid %s is currently being ignored\n", debugstr_guid(pguidApplication));
132
133 return enum_services_providers(pguidServiceProvider, pSPInfoBuffer, pcbEnumData, pcReturned);
134}
HRESULT enum_services_providers(const GUID *const service, DPN_SERVICE_PROVIDER_INFO *const info_buffer, DWORD *const buf_size, DWORD *const returned)
Definition: peer.c:125

◆ IDirectPlay8ClientImpl_GetApplicationDesc()

static HRESULT WINAPI IDirectPlay8ClientImpl_GetApplicationDesc ( IDirectPlay8Client *  iface,
DPN_APPLICATION_DESC *const  pAppDescBuffer,
DWORD *const  pcbDataSize,
const DWORD  dwFlags 
)
static

Definition at line 197 of file client.c.

199{
201 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
202 return DPN_OK;
203}

◆ IDirectPlay8ClientImpl_GetCaps()

static HRESULT WINAPI IDirectPlay8ClientImpl_GetCaps ( IDirectPlay8Client *  iface,
DPN_CAPS *const  pdpCaps,
const DWORD  dwFlags 
)
static

Definition at line 289 of file client.c.

291{
293 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
294 return DPN_OK;
295}

◆ IDirectPlay8ClientImpl_GetConnectionInfo()

static HRESULT WINAPI IDirectPlay8ClientImpl_GetConnectionInfo ( IDirectPlay8Client *  iface,
DPN_CONNECTION_INFO *const  pdpConnectionInfo,
const DWORD  dwFlags 
)
static

Definition at line 341 of file client.c.

343{
345 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
346 return DPN_OK;
347}

◆ IDirectPlay8ClientImpl_GetSendQueueInfo()

static HRESULT WINAPI IDirectPlay8ClientImpl_GetSendQueueInfo ( IDirectPlay8Client *  iface,
DWORD *const  pdwNumMsgs,
DWORD *const  pdwNumBytes,
const DWORD  dwFlags 
)
static

Definition at line 189 of file client.c.

191{
193 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
194 return DPN_OK;
195}

◆ IDirectPlay8ClientImpl_GetServerAddress()

static HRESULT WINAPI IDirectPlay8ClientImpl_GetServerAddress ( IDirectPlay8Client *  iface,
IDirectPlay8Address **const  pAddress,
const DWORD  dwFlags 
)
static

Definition at line 263 of file client.c.

265{
267 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
268 return DPN_OK;
269}

◆ IDirectPlay8ClientImpl_GetServerInfo()

static HRESULT WINAPI IDirectPlay8ClientImpl_GetServerInfo ( IDirectPlay8Client *  iface,
DPN_PLAYER_INFO *const  pdpnPlayerInfo,
DWORD *const  pdwSize,
const DWORD  dwFlags 
)
static

Definition at line 255 of file client.c.

257{
259 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
260 return DPN_OK;
261}

◆ IDirectPlay8ClientImpl_GetSPCaps()

static HRESULT WINAPI IDirectPlay8ClientImpl_GetSPCaps ( IDirectPlay8Client *  iface,
const GUID *const  pguidSP,
DPN_SP_CAPS *const  pdpspCaps,
const DWORD  dwFlags 
)
static

Definition at line 321 of file client.c.

323{
325
326 TRACE("(%p)->(%p,%p,%lx)\n", This, pguidSP, pdpspCaps, dwFlags);
327
328 if(!This->msghandler)
330
331 if(pdpspCaps->dwSize != sizeof(DPN_SP_CAPS))
332 {
333 return DPNERR_INVALIDPARAM;
334 }
335
336 *pdpspCaps = This->spcaps;
337
338 return DPN_OK;
339}
DWORD dwSize
Definition: dplay8.h:331

◆ IDirectPlay8ClientImpl_Initialize()

static HRESULT WINAPI IDirectPlay8ClientImpl_Initialize ( IDirectPlay8Client *  iface,
void *const  pvUserContext,
const PFNDPNMESSAGEHANDLER  pfn,
const DWORD  dwFlags 
)
static

Definition at line 99 of file client.c.

101{
103
104 TRACE("(%p):(%p,%p,%lx)\n", This, pvUserContext, pfn, dwFlags);
105
106 if(!pfn)
107 return DPNERR_INVALIDPARAM;
108
109 This->usercontext = pvUserContext;
110 This->msghandler = pfn;
111 This->flags = dwFlags;
112
113 init_winsock();
114
115 return DPN_OK;
116}
void init_winsock(void)
Definition: dpnet_main.c:55

◆ IDirectPlay8ClientImpl_QueryInterface()

static HRESULT WINAPI IDirectPlay8ClientImpl_QueryInterface ( IDirectPlay8Client *  iface,
REFIID  riid,
void **  ret_iface 
)
static

Definition at line 58 of file client.c.

60{
61 if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectPlay8Client)) {
63 *ret_iface = iface;
64 return S_OK;
65 }
66
67 WARN("(%p)->(%s,%p): not found\n", iface, debugstr_guid(riid), ret_iface);
68 return E_NOINTERFACE;
69}
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
#define IDirectPlay8Client_AddRef(p)
Definition: dplay8.h:605
#define S_OK
Definition: intsafe.h:52
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:3479

Referenced by DPNET_CreateDirectPlay8Client().

◆ IDirectPlay8ClientImpl_RegisterLobby()

static HRESULT WINAPI IDirectPlay8ClientImpl_RegisterLobby ( IDirectPlay8Client *  iface,
const DPNHANDLE  dpnHandle,
struct IDirectPlay8LobbiedApplication *const  pIDP8LobbiedApplication,
const DWORD  dwFlags 
)
static

Definition at line 349 of file client.c.

352{
354 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
355 return DPN_OK;
356}

◆ IDirectPlay8ClientImpl_Release()

static ULONG WINAPI IDirectPlay8ClientImpl_Release ( IDirectPlay8Client *  iface)
static

Definition at line 81 of file client.c.

82{
85
86 TRACE("(%p) ref=%lu\n", This, ref);
87
88 if (!ref)
89 {
90 free(This->username);
91 free(This->data);
92 free(This);
93 }
94 return ref;
95}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5

Referenced by DPNET_CreateDirectPlay8Client().

◆ IDirectPlay8ClientImpl_ReturnBuffer()

static HRESULT WINAPI IDirectPlay8ClientImpl_ReturnBuffer ( IDirectPlay8Client *  iface,
const DPNHANDLE  hBufferHandle,
const DWORD  dwFlags 
)
static

Definition at line 281 of file client.c.

283{
285 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
286 return DPN_OK;
287}

◆ IDirectPlay8ClientImpl_Send()

static HRESULT WINAPI IDirectPlay8ClientImpl_Send ( IDirectPlay8Client *  iface,
const DPN_BUFFER_DESC *const  prgBufferDesc,
const DWORD  cBufferDesc,
const DWORD  dwTimeOut,
void *const  pvAsyncContext,
DPNHANDLE *const  phAsyncHandle,
const DWORD  dwFlags 
)
static

Definition at line 180 of file client.c.

183{
185 FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvAsyncContext, phAsyncHandle, dwFlags);
186 return DPN_OK;
187}

◆ IDirectPlay8ClientImpl_SetCaps()

static HRESULT WINAPI IDirectPlay8ClientImpl_SetCaps ( IDirectPlay8Client *  iface,
const DPN_CAPS *const  pdpCaps,
const DWORD  dwFlags 
)
static

Definition at line 297 of file client.c.

299{
301 FIXME("(%p):(%lx): Stub\n", This, dwFlags);
302 return DPN_OK;
303}

◆ IDirectPlay8ClientImpl_SetClientInfo()

static HRESULT WINAPI IDirectPlay8ClientImpl_SetClientInfo ( IDirectPlay8Client *  iface,
const DPN_PLAYER_INFO *const  pdpnPlayerInfo,
void *const  pvAsyncContext,
DPNHANDLE *const  phAsyncHandle,
const DWORD  dwFlags 
)
static

Definition at line 205 of file client.c.

208{
210 FIXME("(%p):(%p,%p,%lx): Semi-stub.\n", This, pvAsyncContext, phAsyncHandle, dwFlags);
211
212 if(!pdpnPlayerInfo)
213 return E_POINTER;
214
215 if(phAsyncHandle)
216 FIXME("Async handle currently not supported.\n");
217
218 if (pdpnPlayerInfo->dwInfoFlags & DPNINFO_NAME)
219 {
220 free(This->username);
221 This->username = NULL;
222
223 if(pdpnPlayerInfo->pwszName)
224 {
225 This->username = wcsdup(pdpnPlayerInfo->pwszName);
226 if (!This->username)
227 return E_OUTOFMEMORY;
228 }
229 }
230
231 if (pdpnPlayerInfo->dwInfoFlags & DPNINFO_DATA)
232 {
233 free(This->data);
234 This->data = NULL;
235 This->datasize = 0;
236
237 if(!pdpnPlayerInfo->pvData && pdpnPlayerInfo->dwDataSize)
238 return E_POINTER;
239
240 if(pdpnPlayerInfo->dwDataSize && pdpnPlayerInfo->pvData)
241 {
242 This->data = malloc(pdpnPlayerInfo->dwDataSize);
243 if (!This->data)
244 return E_OUTOFMEMORY;
245
246 This->datasize = pdpnPlayerInfo->dwDataSize;
247
248 memcpy(This->data, pdpnPlayerInfo->pvData, pdpnPlayerInfo->dwDataSize);
249 }
250 }
251
252 return DPN_OK;
253}
#define malloc
Definition: debug_ros.c:4
static wchar_t * wcsdup(const wchar_t *str)
Definition: string.h:94
#define DPNINFO_DATA
Definition: dplay8.h:190
#define DPNINFO_NAME
Definition: dplay8.h:189
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
DWORD dwInfoFlags
Definition: dplay8.h:315
PWSTR pwszName
Definition: dplay8.h:316
DWORD dwDataSize
Definition: dplay8.h:318
PVOID pvData
Definition: dplay8.h:317
#define E_POINTER
Definition: winerror.h:3480

◆ IDirectPlay8ClientImpl_SetSPCaps()

static HRESULT WINAPI IDirectPlay8ClientImpl_SetSPCaps ( IDirectPlay8Client *  iface,
const GUID *const  pguidSP,
const DPN_SP_CAPS *const  pdpspCaps,
const DWORD  dwFlags 
)
static

Definition at line 305 of file client.c.

307{
309
310 TRACE("(%p)->(%p,%p,%lx): stub\n", iface, pguidSP, pdpspCaps, dwFlags);
311
312 if(!This->msghandler || pdpspCaps->dwSize != sizeof(DPN_SP_CAPS))
313 return DPNERR_INVALIDPARAM;
314
315 /* Only dwSystemBufferSize is set by this call. */
316 This->spcaps.dwSystemBufferSize = pdpspCaps->dwSystemBufferSize;
317
318 return DPN_OK;
319}
DWORD dwSystemBufferSize
Definition: dplay8.h:339

◆ impl_from_IDirectPlay8Client()

◆ impl_from_IDirectPlay8LobbyClient()

◆ lobbyclient_AddRef()

static ULONG WINAPI lobbyclient_AddRef ( IDirectPlay8LobbyClient *  iface)
static

Definition at line 432 of file client.c.

433{
436
437 TRACE("(%p) ref=%lu\n", This, ref);
438
439 return ref;
440}
static IDirectPlay8LobbyClientImpl * impl_from_IDirectPlay8LobbyClient(IDirectPlay8LobbyClient *iface)
Definition: client.c:47

◆ lobbyclient_Close()

static HRESULT WINAPI lobbyclient_Close ( IDirectPlay8LobbyClient *  iface,
DWORD  flags 
)
static

Definition at line 518 of file client.c.

519{
521
522 FIXME("(%p)->(0x%08lx)\n", This, flags);
523
524 return E_NOTIMPL;
525}
#define E_NOTIMPL
Definition: ddrawi.h:99
GLbitfield flags
Definition: glext.h:7161

◆ lobbyclient_ConnectApplication()

static HRESULT WINAPI lobbyclient_ConnectApplication ( IDirectPlay8LobbyClient *  iface,
DPL_CONNECT_INFO *  connectioninfo,
void *  connectioncontext,
DPNHANDLE *  application,
DWORD  timeout,
DWORD  flags 
)
static

Definition at line 489 of file client.c.

492{
494
495 FIXME("(%p)->(%p %p %p %lu 0x%08lx)\n", This, connectioninfo, connectioncontext, application, timeout, flags);
496
497 return E_NOTIMPL;
498}
Definition: dhcpd.h:248

◆ lobbyclient_EnumLocalPrograms()

static HRESULT WINAPI lobbyclient_EnumLocalPrograms ( IDirectPlay8LobbyClient *  iface,
GUID *  guidapplication,
BYTE *  enumdata,
DWORD *  enumDataSize,
DWORD *  items,
DWORD  flags 
)
static

Definition at line 476 of file client.c.

478{
480
481 FIXME("(%p)->(%p %p %p %p 0x%08lx)\n", This, guidapplication, enumdata, enumDataSize, items, flags);
482
483 if(enumDataSize)
484 *enumDataSize = 0;
485
486 return S_OK;
487}
static TCHAR * items[]
Definition: page1.c:45

◆ lobbyclient_GetConnectionSettings()

static HRESULT WINAPI lobbyclient_GetConnectionSettings ( IDirectPlay8LobbyClient *  iface,
DPNHANDLE  connection,
DPL_CONNECTION_SETTINGS *  sessioninfo,
DWORD *  infosize,
DWORD  flags 
)
static

Definition at line 527 of file client.c.

528{
530
531 FIXME("(%p)->(%lu %p %p 0x%08lx)\n", This, connection, sessioninfo, infosize, flags);
532
533 return E_NOTIMPL;
534}
HINTERNET connection
Definition: port.c:65

◆ lobbyclient_Initialize()

static HRESULT WINAPI lobbyclient_Initialize ( IDirectPlay8LobbyClient *  iface,
void *  context,
PFNDPNMESSAGEHANDLER  msghandler,
DWORD  flags 
)
static

Definition at line 457 of file client.c.

459{
461
462 TRACE("(%p):(%p,%p,%lx)\n", This, context, msghandler, flags);
463
464 if(!msghandler)
465 return E_POINTER;
466
467 This->usercontext = context;
468 This->msghandler = msghandler;
469 This->flags = flags;
470
471 init_winsock();
472
473 return DPN_OK;
474}
Definition: http.c:7252

◆ lobbyclient_QueryInterface()

static HRESULT WINAPI lobbyclient_QueryInterface ( IDirectPlay8LobbyClient *  iface,
REFIID  riid,
void **  obj 
)
static

Definition at line 411 of file client.c.

412{
414
415 TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), obj);
416
417 *obj = NULL;
418
420 IsEqualGUID(riid, &IID_IDirectPlay8LobbyClient))
421 {
422 *obj = &This->IDirectPlay8LobbyClient_iface;
423 IUnknown_AddRef( (IUnknown*)*obj);
424
425 return DPN_OK;
426 }
427
428 WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),obj);
429 return E_NOINTERFACE;
430}

Referenced by DPNET_CreateDirectPlay8LobbyClient().

◆ lobbyclient_Release()

static ULONG WINAPI lobbyclient_Release ( IDirectPlay8LobbyClient *  iface)
static

Definition at line 442 of file client.c.

443{
446
447 TRACE("(%p) ref=%lu\n", This, ref);
448
449 if (!ref)
450 {
451 free(This);
452 }
453
454 return ref;
455}

Referenced by DPNET_CreateDirectPlay8LobbyClient().

◆ lobbyclient_ReleaseApplication()

static HRESULT WINAPI lobbyclient_ReleaseApplication ( IDirectPlay8LobbyClient *  iface,
DPNHANDLE  connection,
DWORD  flags 
)
static

Definition at line 509 of file client.c.

510{
512
513 FIXME("(%p)->(%lu 0x%08lx)\n", This, connection, flags);
514
515 return E_NOTIMPL;
516}

◆ lobbyclient_Send()

static HRESULT WINAPI lobbyclient_Send ( IDirectPlay8LobbyClient *  iface,
DPNHANDLE  connection,
BYTE *  buffer,
DWORD  buffersize,
DWORD  flags 
)
static

Definition at line 500 of file client.c.

501{
503
504 FIXME("(%p)->(%lu %p %lu 0x%08lx)\n", This, connection, buffer, buffersize, flags);
505
506 return E_NOTIMPL;
507}
GLuint buffer
Definition: glext.h:5915

◆ lobbyclient_SetConnectionSettings()

static HRESULT WINAPI lobbyclient_SetConnectionSettings ( IDirectPlay8LobbyClient *  iface,
DPNHANDLE  connection,
const DPL_CONNECTION_SETTINGS *  sessioninfo,
DWORD  flags 
)
static

Definition at line 536 of file client.c.

537{
539
540 FIXME("(%p)->(%lu %p 0x%08lx)\n", This, connection, sessioninfo, flags);
541
542 return E_NOTIMPL;
543}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( dpnet  )

Variable Documentation

◆ DirectPlay8Client_Vtbl

const IDirectPlay8ClientVtbl DirectPlay8Client_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI IDirectPlay8ClientImpl_ReturnBuffer(IDirectPlay8Client *iface, const DPNHANDLE hBufferHandle, const DWORD dwFlags)
Definition: client.c:281
static HRESULT WINAPI IDirectPlay8ClientImpl_GetSPCaps(IDirectPlay8Client *iface, const GUID *const pguidSP, DPN_SP_CAPS *const pdpspCaps, const DWORD dwFlags)
Definition: client.c:321
static HRESULT WINAPI IDirectPlay8ClientImpl_CancelAsyncOperation(IDirectPlay8Client *iface, const DPNHANDLE hAsyncHandle, const DWORD dwFlags)
Definition: client.c:160
static HRESULT WINAPI IDirectPlay8ClientImpl_EnumServiceProviders(IDirectPlay8Client *iface, const GUID *const pguidServiceProvider, const GUID *const pguidApplication, DPN_SERVICE_PROVIDER_INFO *const pSPInfoBuffer, PDWORD const pcbEnumData, PDWORD const pcReturned, const DWORD dwFlags)
Definition: client.c:118
static HRESULT WINAPI IDirectPlay8ClientImpl_Close(IDirectPlay8Client *iface, const DWORD dwFlags)
Definition: client.c:271
static HRESULT WINAPI IDirectPlay8ClientImpl_RegisterLobby(IDirectPlay8Client *iface, const DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *const pIDP8LobbiedApplication, const DWORD dwFlags)
Definition: client.c:349
static HRESULT WINAPI IDirectPlay8ClientImpl_Connect(IDirectPlay8Client *iface, const DPN_APPLICATION_DESC *const pdnAppDesc, IDirectPlay8Address *const pHostAddr, IDirectPlay8Address *const pDeviceInfo, const DPN_SECURITY_DESC *const pdnSecurity, const DPN_SECURITY_CREDENTIALS *const pdnCredentials, const void *const pvUserConnectData, const DWORD dwUserConnectDataSize, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
Definition: client.c:168
static HRESULT WINAPI IDirectPlay8ClientImpl_GetSendQueueInfo(IDirectPlay8Client *iface, DWORD *const pdwNumMsgs, DWORD *const pdwNumBytes, const DWORD dwFlags)
Definition: client.c:189
static HRESULT WINAPI IDirectPlay8ClientImpl_GetApplicationDesc(IDirectPlay8Client *iface, DPN_APPLICATION_DESC *const pAppDescBuffer, DWORD *const pcbDataSize, const DWORD dwFlags)
Definition: client.c:197
static HRESULT WINAPI IDirectPlay8ClientImpl_GetCaps(IDirectPlay8Client *iface, DPN_CAPS *const pdpCaps, const DWORD dwFlags)
Definition: client.c:289
static HRESULT WINAPI IDirectPlay8ClientImpl_SetCaps(IDirectPlay8Client *iface, const DPN_CAPS *const pdpCaps, const DWORD dwFlags)
Definition: client.c:297
static HRESULT WINAPI IDirectPlay8ClientImpl_GetConnectionInfo(IDirectPlay8Client *iface, DPN_CONNECTION_INFO *const pdpConnectionInfo, const DWORD dwFlags)
Definition: client.c:341
static HRESULT WINAPI IDirectPlay8ClientImpl_EnumHosts(IDirectPlay8Client *iface, PDPN_APPLICATION_DESC const pApplicationDesc, IDirectPlay8Address *const pAddrHost, IDirectPlay8Address *const pDeviceInfo, void *const pUserEnumData, const DWORD dwUserEnumDataSize, const DWORD dwEnumCount, const DWORD dwRetryInterval, const DWORD dwTimeOut, void *const pvUserContext, DPNHANDLE *const pAsyncHandle, const DWORD dwFlags)
Definition: client.c:136
static ULONG WINAPI IDirectPlay8ClientImpl_AddRef(IDirectPlay8Client *iface)
Definition: client.c:71
static HRESULT WINAPI IDirectPlay8ClientImpl_Initialize(IDirectPlay8Client *iface, void *const pvUserContext, const PFNDPNMESSAGEHANDLER pfn, const DWORD dwFlags)
Definition: client.c:99
static HRESULT WINAPI IDirectPlay8ClientImpl_SetClientInfo(IDirectPlay8Client *iface, const DPN_PLAYER_INFO *const pdpnPlayerInfo, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
Definition: client.c:205
static HRESULT WINAPI IDirectPlay8ClientImpl_GetServerAddress(IDirectPlay8Client *iface, IDirectPlay8Address **const pAddress, const DWORD dwFlags)
Definition: client.c:263
static HRESULT WINAPI IDirectPlay8ClientImpl_Send(IDirectPlay8Client *iface, const DPN_BUFFER_DESC *const prgBufferDesc, const DWORD cBufferDesc, const DWORD dwTimeOut, void *const pvAsyncContext, DPNHANDLE *const phAsyncHandle, const DWORD dwFlags)
Definition: client.c:180
static HRESULT WINAPI IDirectPlay8ClientImpl_GetServerInfo(IDirectPlay8Client *iface, DPN_PLAYER_INFO *const pdpnPlayerInfo, DWORD *const pdwSize, const DWORD dwFlags)
Definition: client.c:255
static HRESULT WINAPI IDirectPlay8ClientImpl_SetSPCaps(IDirectPlay8Client *iface, const GUID *const pguidSP, const DPN_SP_CAPS *const pdpspCaps, const DWORD dwFlags)
Definition: client.c:305

Definition at line 358 of file client.c.

Referenced by DPNET_CreateDirectPlay8Client().

◆ DirectPlay8LobbiedClient_Vtbl

const IDirectPlay8LobbyClientVtbl DirectPlay8LobbiedClient_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI lobbyclient_SetConnectionSettings(IDirectPlay8LobbyClient *iface, DPNHANDLE connection, const DPL_CONNECTION_SETTINGS *sessioninfo, DWORD flags)
Definition: client.c:536
static HRESULT WINAPI lobbyclient_ReleaseApplication(IDirectPlay8LobbyClient *iface, DPNHANDLE connection, DWORD flags)
Definition: client.c:509
static ULONG WINAPI lobbyclient_AddRef(IDirectPlay8LobbyClient *iface)
Definition: client.c:432
static HRESULT WINAPI lobbyclient_EnumLocalPrograms(IDirectPlay8LobbyClient *iface, GUID *guidapplication, BYTE *enumdata, DWORD *enumDataSize, DWORD *items, DWORD flags)
Definition: client.c:476
static HRESULT WINAPI lobbyclient_GetConnectionSettings(IDirectPlay8LobbyClient *iface, DPNHANDLE connection, DPL_CONNECTION_SETTINGS *sessioninfo, DWORD *infosize, DWORD flags)
Definition: client.c:527
static HRESULT WINAPI lobbyclient_ConnectApplication(IDirectPlay8LobbyClient *iface, DPL_CONNECT_INFO *connectioninfo, void *connectioncontext, DPNHANDLE *application, DWORD timeout, DWORD flags)
Definition: client.c:489
static HRESULT WINAPI lobbyclient_Send(IDirectPlay8LobbyClient *iface, DPNHANDLE connection, BYTE *buffer, DWORD buffersize, DWORD flags)
Definition: client.c:500
static HRESULT WINAPI lobbyclient_Close(IDirectPlay8LobbyClient *iface, DWORD flags)
Definition: client.c:518
static HRESULT WINAPI lobbyclient_Initialize(IDirectPlay8LobbyClient *iface, void *context, PFNDPNMESSAGEHANDLER msghandler, DWORD flags)
Definition: client.c:457

Definition at line 545 of file client.c.

Referenced by DPNET_CreateDirectPlay8LobbyClient().