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

Go to the source code of this file.

Classes

struct  IDirectPlay8ServerImpl
 

Macros

#define COBJMACROS
 

Typedefs

typedef struct IDirectPlay8ServerImpl IDirectPlay8ServerImpl
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (dpnet)
 
static IDirectPlay8ServerImpl * impl_from_IDirectPlay8Server (IDirectPlay8Server *iface)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_QueryInterface (IDirectPlay8Server *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI IDirectPlay8ServerImpl_AddRef (IDirectPlay8Server *iface)
 
static ULONG WINAPI IDirectPlay8ServerImpl_Release (IDirectPlay8Server *iface)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_Initialize (IDirectPlay8Server *iface, PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_EnumServiceProviders (IDirectPlay8Server *iface, const GUID *pguidServiceProvider, const GUID *pguidApplication, DPN_SERVICE_PROVIDER_INFO *pSPInfoBuffer, PDWORD pcbEnumData, PDWORD pcReturned, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_CancelAsyncOperation (IDirectPlay8Server *iface, DPNHANDLE hAsyncHandle, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetSendQueueInfo (IDirectPlay8Server *iface, DPNID dpnid, DWORD *pdwNumMsgs, DWORD *pdwNumBytes, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetApplicationDesc (IDirectPlay8Server *iface, DPN_APPLICATION_DESC *pAppDescBuffer, DWORD *pcbDataSize, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_SetServerInfo (IDirectPlay8Server *iface, const DPN_PLAYER_INFO *pdpnPlayerInfo, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetClientInfo (IDirectPlay8Server *iface, DPNID dpnid, DPN_PLAYER_INFO *pdpnPlayerInfo, DWORD *pdwSize, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetClientAddress (IDirectPlay8Server *iface, DPNID dpnid, IDirectPlay8Address **pAddress, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetLocalHostAddresses (IDirectPlay8Server *iface, IDirectPlay8Address **prgpAddress, DWORD *pcAddress, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_SetApplicationDesc (IDirectPlay8Server *iface, const DPN_APPLICATION_DESC *pad, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_Host (IDirectPlay8Server *iface, const DPN_APPLICATION_DESC *pdnAppDesc, IDirectPlay8Address **prgpDeviceInfo, DWORD cDeviceInfo, const DPN_SECURITY_DESC *pdnSecurity, const DPN_SECURITY_CREDENTIALS *pdnCredentials, void *pvPlayerContext, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_SendTo (IDirectPlay8Server *iface, DPNID dpnid, const DPN_BUFFER_DESC *prgBufferDesc, DWORD cBufferDesc, DWORD dwTimeOut, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_CreateGroup (IDirectPlay8Server *iface, const DPN_GROUP_INFO *pdpnGroupInfo, void *pvGroupContext, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_DestroyGroup (IDirectPlay8Server *iface, DPNID idGroup, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_AddPlayerToGroup (IDirectPlay8Server *iface, DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_RemovePlayerFromGroup (IDirectPlay8Server *iface, DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_SetGroupInfo (IDirectPlay8Server *iface, DPNID dpnid, DPN_GROUP_INFO *pdpnGroupInfo, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetGroupInfo (IDirectPlay8Server *iface, DPNID dpnid, DPN_GROUP_INFO *pdpnGroupInfo, DWORD *pdwSize, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_EnumPlayersAndGroups (IDirectPlay8Server *iface, DPNID *prgdpnid, DWORD *pcdpnid, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_EnumGroupMembers (IDirectPlay8Server *iface, DPNID dpnid, DPNID *prgdpnid, DWORD *pcdpnid, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_Close (IDirectPlay8Server *iface, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_DestroyClient (IDirectPlay8Server *iface, DPNID dpnidClient, const void *pvDestroyData, DWORD dwDestroyDataSize, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_ReturnBuffer (IDirectPlay8Server *iface, DPNHANDLE hBufferHandle, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetPlayerContext (IDirectPlay8Server *iface, DPNID dpnid, PVOID *ppvPlayerContext, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetGroupContext (IDirectPlay8Server *iface, DPNID dpnid, PVOID *ppvGroupContext, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetCaps (IDirectPlay8Server *iface, DPN_CAPS *pdpCaps, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_SetCaps (IDirectPlay8Server *iface, const DPN_CAPS *pdpCaps, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_SetSPCaps (IDirectPlay8Server *iface, const GUID *pguidSP, const DPN_SP_CAPS *pdpspCaps, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetSPCaps (IDirectPlay8Server *iface, const GUID *pguidSP, DPN_SP_CAPS *pdpspCaps, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_GetConnectionInfo (IDirectPlay8Server *iface, DPNID dpnid, DPN_CONNECTION_INFO *pdpConnectionInfo, DWORD dwFlags)
 
static HRESULT WINAPI IDirectPlay8ServerImpl_RegisterLobby (IDirectPlay8Server *iface, DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *pIDP8LobbiedApplication, DWORD dwFlags)
 
HRESULT DPNET_CreateDirectPlay8Server (IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv)
 

Variables

static const IDirectPlay8ServerVtbl DirectPlay8ServerVtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 25 of file server.c.

Typedef Documentation

◆ IDirectPlay8ServerImpl

Function Documentation

◆ DPNET_CreateDirectPlay8Server()

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

Definition at line 451 of file server.c.

452{
454 HRESULT hr;
455
456 TRACE("(%p, %s, %p)\n", pUnkOuter, debugstr_guid(riid), ppv);
457
458 *ppv = NULL;
459
460 if(pUnkOuter)
462
464 if (!server)
465 return E_OUTOFMEMORY;
466
467 server->IDirectPlay8Server_iface.lpVtbl = &DirectPlay8ServerVtbl;
468 server->ref = 1;
469 server->usercontext = NULL;
470 server->msghandler = NULL;
471 server->flags = 0;
472
473 hr = IDirectPlay8Server_QueryInterface(&server->IDirectPlay8Server_iface, riid, ppv);
474 IDirectPlay8Server_Release(&server->IDirectPlay8Server_iface);
475
476 return hr;
477}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
static const IDirectPlay8ServerVtbl DirectPlay8ServerVtbl
Definition: server.c:413
#define IDirectPlay8Server_Release(p)
Definition: dplay8.h:703
#define IDirectPlay8Server_QueryInterface(p, a, b)
Definition: dplay8.h:701
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
#define TRACE(s)
Definition: solgame.cpp:4
static rfbScreenInfoPtr server
Definition: vnc.c:74
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:3771

◆ IDirectPlay8ServerImpl_AddPlayerToGroup()

static HRESULT WINAPI IDirectPlay8ServerImpl_AddPlayerToGroup ( IDirectPlay8Server *  iface,
DPNID  idGroup,
DPNID  idClient,
PVOID  pvAsyncContext,
DPNHANDLE *  phAsyncHandle,
DWORD  dwFlags 
)
static

Definition at line 287 of file server.c.

289{
291 FIXME("(%p)->(%ld %ld %p %p %ld)\n", This, idGroup, idClient, pvAsyncContext, phAsyncHandle, dwFlags);
292 return E_NOTIMPL;
293}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99
static IDirectPlay8ServerImpl * impl_from_IDirectPlay8Server(IDirectPlay8Server *iface)
Definition: server.c:52
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141

◆ IDirectPlay8ServerImpl_AddRef()

static ULONG WINAPI IDirectPlay8ServerImpl_AddRef ( IDirectPlay8Server *  iface)
static

Definition at line 79 of file server.c.

80{
83
84 TRACE("(%p) ref=%ld\n", This, ref);
85
86 return ref;
87}
#define InterlockedIncrement
Definition: armddk.h:53
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59

◆ IDirectPlay8ServerImpl_CancelAsyncOperation()

static HRESULT WINAPI IDirectPlay8ServerImpl_CancelAsyncOperation ( IDirectPlay8Server *  iface,
DPNHANDLE  hAsyncHandle,
DWORD  dwFlags 
)
static

Definition at line 144 of file server.c.

145{
147 FIXME("(%p)->(%ld %ld)\n", This, hAsyncHandle, dwFlags);
148 return E_NOTIMPL;
149}

◆ IDirectPlay8ServerImpl_Close()

static HRESULT WINAPI IDirectPlay8ServerImpl_Close ( IDirectPlay8Server *  iface,
DWORD  dwFlags 
)
static

Definition at line 333 of file server.c.

334{
336 FIXME("(%p)->(%ld)\n", This, dwFlags);
337 return E_NOTIMPL;
338}

◆ IDirectPlay8ServerImpl_CreateGroup()

static HRESULT WINAPI IDirectPlay8ServerImpl_CreateGroup ( IDirectPlay8Server *  iface,
const DPN_GROUP_INFO *  pdpnGroupInfo,
void *  pvGroupContext,
void *  pvAsyncContext,
DPNHANDLE *  phAsyncHandle,
DWORD  dwFlags 
)
static

Definition at line 271 of file server.c.

273{
275 FIXME("(%p)->(%p %p %p %p %ld)\n", This, pdpnGroupInfo, pvGroupContext, pvAsyncContext, phAsyncHandle, dwFlags);
276 return E_NOTIMPL;
277}

◆ IDirectPlay8ServerImpl_DestroyClient()

static HRESULT WINAPI IDirectPlay8ServerImpl_DestroyClient ( IDirectPlay8Server *  iface,
DPNID  dpnidClient,
const void *  pvDestroyData,
DWORD  dwDestroyDataSize,
DWORD  dwFlags 
)
static

Definition at line 340 of file server.c.

342{
344 FIXME("(%p)->(%ld %p %ld %ld)\n", This, dpnidClient, pvDestroyData, dwDestroyDataSize, dwFlags);
345 return E_NOTIMPL;
346}

◆ IDirectPlay8ServerImpl_DestroyGroup()

static HRESULT WINAPI IDirectPlay8ServerImpl_DestroyGroup ( IDirectPlay8Server *  iface,
DPNID  idGroup,
PVOID  pvAsyncContext,
DPNHANDLE *  phAsyncHandle,
DWORD  dwFlags 
)
static

Definition at line 279 of file server.c.

281{
283 FIXME("(%p)->(%ld %p %p %ld)\n", This, idGroup, pvAsyncContext, phAsyncHandle, dwFlags);
284 return E_NOTIMPL;
285}

◆ IDirectPlay8ServerImpl_EnumGroupMembers()

static HRESULT WINAPI IDirectPlay8ServerImpl_EnumGroupMembers ( IDirectPlay8Server *  iface,
DPNID  dpnid,
DPNID *  prgdpnid,
DWORD *  pcdpnid,
DWORD  dwFlags 
)
static

Definition at line 326 of file server.c.

327{
329 FIXME("(%p)->(%ld %p %p %ld)\n", This, dpnid, prgdpnid, pcdpnid, dwFlags);
330 return E_NOTIMPL;
331}

◆ IDirectPlay8ServerImpl_EnumPlayersAndGroups()

static HRESULT WINAPI IDirectPlay8ServerImpl_EnumPlayersAndGroups ( IDirectPlay8Server *  iface,
DPNID *  prgdpnid,
DWORD *  pcdpnid,
DWORD  dwFlags 
)
static

Definition at line 319 of file server.c.

320{
322 FIXME("(%p)->(%p %p %ld)\n", This, prgdpnid, pcdpnid, dwFlags);
323 return E_NOTIMPL;
324}

◆ IDirectPlay8ServerImpl_EnumServiceProviders()

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

Definition at line 124 of file server.c.

127{
129 TRACE("(%p)->(%s %s %p %p %p %ld)\n", This, debugstr_guid(pguidServiceProvider), debugstr_guid(pguidApplication),
130 pSPInfoBuffer, pcbEnumData, pcReturned, dwFlags);
131
132 if(!This->msghandler)
134
135 if(dwFlags)
136 FIXME("Unhandled flags %lx\n", dwFlags);
137
138 if(pguidApplication)
139 FIXME("Application guid %s is currently being ignored\n", debugstr_guid(pguidApplication));
140
141 return enum_services_providers(pguidServiceProvider, pSPInfoBuffer, pcbEnumData, pcReturned);
142}
#define DPNERR_UNINITIALIZED
Definition: dplay8.h:146
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

◆ IDirectPlay8ServerImpl_GetApplicationDesc()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetApplicationDesc ( IDirectPlay8Server *  iface,
DPN_APPLICATION_DESC *  pAppDescBuffer,
DWORD *  pcbDataSize,
DWORD  dwFlags 
)
static

Definition at line 159 of file server.c.

161{
163 FIXME("(%p)->(%p %p %ld)\n", This, pAppDescBuffer, pcbDataSize, dwFlags);
164 return E_NOTIMPL;
165}

◆ IDirectPlay8ServerImpl_GetCaps()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetCaps ( IDirectPlay8Server *  iface,
DPN_CAPS *  pdpCaps,
DWORD  dwFlags 
)
static

Definition at line 369 of file server.c.

370{
372 FIXME("(%p)->(%p %ld)\n", This, pdpCaps, dwFlags);
373 return E_NOTIMPL;
374}

◆ IDirectPlay8ServerImpl_GetClientAddress()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetClientAddress ( IDirectPlay8Server *  iface,
DPNID  dpnid,
IDirectPlay8Address **  pAddress,
DWORD  dwFlags 
)
static

Definition at line 229 of file server.c.

231{
233 FIXME("(%p)->(%ld %p %ld)\n", This, dpnid, pAddress, dwFlags);
234 return E_NOTIMPL;
235}

◆ IDirectPlay8ServerImpl_GetClientInfo()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetClientInfo ( IDirectPlay8Server *  iface,
DPNID  dpnid,
DPN_PLAYER_INFO *  pdpnPlayerInfo,
DWORD *  pdwSize,
DWORD  dwFlags 
)
static

Definition at line 221 of file server.c.

223{
225 FIXME("(%p)->(%ld %p %p %ld)\n", This, dpnid, pdpnPlayerInfo, pdwSize, dwFlags);
226 return E_NOTIMPL;
227}

◆ IDirectPlay8ServerImpl_GetConnectionInfo()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetConnectionInfo ( IDirectPlay8Server *  iface,
DPNID  dpnid,
DPN_CONNECTION_INFO *  pdpConnectionInfo,
DWORD  dwFlags 
)
static

Definition at line 397 of file server.c.

399{
401 FIXME("(%p)->(%ld %p %ld)\n", This, dpnid, pdpConnectionInfo, dwFlags);
402 return E_NOTIMPL;
403}

◆ IDirectPlay8ServerImpl_GetGroupContext()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetGroupContext ( IDirectPlay8Server *  iface,
DPNID  dpnid,
PVOID *  ppvGroupContext,
DWORD  dwFlags 
)
static

Definition at line 362 of file server.c.

363{
365 FIXME("(%p)->(%ld %p %ld)\n", This, dpnid, ppvGroupContext, dwFlags);
366 return E_NOTIMPL;
367}

◆ IDirectPlay8ServerImpl_GetGroupInfo()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetGroupInfo ( IDirectPlay8Server *  iface,
DPNID  dpnid,
DPN_GROUP_INFO *  pdpnGroupInfo,
DWORD *  pdwSize,
DWORD  dwFlags 
)
static

Definition at line 311 of file server.c.

313{
315 FIXME("(%p)->(%ld %p %p %ld)\n", This, dpnid, pdpnGroupInfo, pdwSize, dwFlags);
316 return E_NOTIMPL;
317}

◆ IDirectPlay8ServerImpl_GetLocalHostAddresses()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetLocalHostAddresses ( IDirectPlay8Server *  iface,
IDirectPlay8Address **  prgpAddress,
DWORD *  pcAddress,
DWORD  dwFlags 
)
static

Definition at line 237 of file server.c.

239{
241 FIXME("(%p)->(%p %p %ld)\n", This, prgpAddress, pcAddress, dwFlags);
242 return E_NOTIMPL;
243}

◆ IDirectPlay8ServerImpl_GetPlayerContext()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetPlayerContext ( IDirectPlay8Server *  iface,
DPNID  dpnid,
PVOID *  ppvPlayerContext,
DWORD  dwFlags 
)
static

Definition at line 355 of file server.c.

356{
358 FIXME("(%p)->(%ld %p %ld)\n", This, dpnid, ppvPlayerContext, dwFlags);
359 return E_NOTIMPL;
360}

◆ IDirectPlay8ServerImpl_GetSendQueueInfo()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetSendQueueInfo ( IDirectPlay8Server *  iface,
DPNID  dpnid,
DWORD *  pdwNumMsgs,
DWORD *  pdwNumBytes,
DWORD  dwFlags 
)
static

Definition at line 151 of file server.c.

153{
155 FIXME("(%p)->(%ld %p %p %ld)\n", This, dpnid, pdwNumMsgs, pdwNumBytes, dwFlags);
156 return E_NOTIMPL;
157}

◆ IDirectPlay8ServerImpl_GetSPCaps()

static HRESULT WINAPI IDirectPlay8ServerImpl_GetSPCaps ( IDirectPlay8Server *  iface,
const GUID *  pguidSP,
DPN_SP_CAPS *  pdpspCaps,
DWORD  dwFlags 
)
static

Definition at line 390 of file server.c.

391{
393 FIXME("(%p)->(%p %p %ld)\n", This, pguidSP, pdpspCaps, dwFlags);
394 return E_NOTIMPL;
395}

◆ IDirectPlay8ServerImpl_Host()

static HRESULT WINAPI IDirectPlay8ServerImpl_Host ( IDirectPlay8Server *  iface,
const DPN_APPLICATION_DESC *  pdnAppDesc,
IDirectPlay8Address **  prgpDeviceInfo,
DWORD  cDeviceInfo,
const DPN_SECURITY_DESC *  pdnSecurity,
const DPN_SECURITY_CREDENTIALS *  pdnCredentials,
void *  pvPlayerContext,
DWORD  dwFlags 
)
static

Definition at line 252 of file server.c.

255{
257 FIXME("(%p)->(%p %p %ld %p %p %p %ld)\n", This, pdnAppDesc, prgpDeviceInfo, cDeviceInfo, pdnSecurity, pdnCredentials,
258 pvPlayerContext, dwFlags);
259 return E_NOTIMPL;
260}

◆ IDirectPlay8ServerImpl_Initialize()

static HRESULT WINAPI IDirectPlay8ServerImpl_Initialize ( IDirectPlay8Server *  iface,
PVOID  pvUserContext,
PFNDPNMESSAGEHANDLER  pfn,
DWORD  dwFlags 
)
static

Definition at line 106 of file server.c.

108{
110 TRACE("(%p)->(%p %p %ld)\n", This, pvUserContext, pfn, dwFlags);
111
112 if(!pfn)
113 return DPNERR_INVALIDPARAM;
114
115 This->usercontext = pvUserContext;
116 This->msghandler = pfn;
117 This->flags = dwFlags;
118
119 init_winsock();
120
121 return DPN_OK;
122}
#define DPNERR_INVALIDPARAM
Definition: dplay8.h:77
#define DPN_OK
Definition: dplay8.h:75
void init_winsock(void)
Definition: dpnet_main.c:55

◆ IDirectPlay8ServerImpl_QueryInterface()

static HRESULT WINAPI IDirectPlay8ServerImpl_QueryInterface ( IDirectPlay8Server *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 57 of file server.c.

58{
60
61 TRACE("%p %s %p\n", This, debugstr_guid(riid), ppv);
62
64 IsEqualGUID(riid, &IID_IDirectPlay8Server))
65 {
66 TRACE("(%p)->(IID_IDirectPlay8Server %p)\n", This, ppv);
67 *ppv = &This->IDirectPlay8Server_iface;
68 }
69 else {
70 WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
71 *ppv = NULL;
72 return E_NOINTERFACE;
73 }
74
75 IUnknown_AddRef((IUnknown*)*ppv);
76 return S_OK;
77}
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
#define S_OK
Definition: intsafe.h:52
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ IDirectPlay8ServerImpl_RegisterLobby()

static HRESULT WINAPI IDirectPlay8ServerImpl_RegisterLobby ( IDirectPlay8Server *  iface,
DPNHANDLE  dpnHandle,
struct IDirectPlay8LobbiedApplication *  pIDP8LobbiedApplication,
DWORD  dwFlags 
)
static

Definition at line 405 of file server.c.

407{
409 FIXME("(%p)->(%ld %p %ld)\n", This, dpnHandle, pIDP8LobbiedApplication, dwFlags);
410 return E_NOTIMPL;
411}

◆ IDirectPlay8ServerImpl_Release()

static ULONG WINAPI IDirectPlay8ServerImpl_Release ( IDirectPlay8Server *  iface)
static

Definition at line 89 of file server.c.

90{
93
94 TRACE("(%p) ref=%ld\n", This, ref);
95
96 if (!ref)
97 {
98 free(This->servername);
99 free(This->data);
100 free(This);
101 }
102
103 return ref;
104}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5

◆ IDirectPlay8ServerImpl_RemovePlayerFromGroup()

static HRESULT WINAPI IDirectPlay8ServerImpl_RemovePlayerFromGroup ( IDirectPlay8Server *  iface,
DPNID  idGroup,
DPNID  idClient,
PVOID  pvAsyncContext,
DPNHANDLE *  phAsyncHandle,
DWORD  dwFlags 
)
static

Definition at line 295 of file server.c.

297{
299 FIXME("(%p)->(%ld %ld %p %p %ld)\n", This, idGroup, idClient, pvAsyncContext, phAsyncHandle, dwFlags);
300 return E_NOTIMPL;
301}

◆ IDirectPlay8ServerImpl_ReturnBuffer()

static HRESULT WINAPI IDirectPlay8ServerImpl_ReturnBuffer ( IDirectPlay8Server *  iface,
DPNHANDLE  hBufferHandle,
DWORD  dwFlags 
)
static

Definition at line 348 of file server.c.

349{
351 FIXME("(%p)->(%ld %ld)\n", This, hBufferHandle, dwFlags);
352 return E_NOTIMPL;
353}

◆ IDirectPlay8ServerImpl_SendTo()

static HRESULT WINAPI IDirectPlay8ServerImpl_SendTo ( IDirectPlay8Server *  iface,
DPNID  dpnid,
const DPN_BUFFER_DESC *  prgBufferDesc,
DWORD  cBufferDesc,
DWORD  dwTimeOut,
void *  pvAsyncContext,
DPNHANDLE *  phAsyncHandle,
DWORD  dwFlags 
)
static

Definition at line 262 of file server.c.

264{
266 FIXME("(%p)->(%ld %p %ld %ld %p %p %ld)\n", This, dpnid, prgBufferDesc, cBufferDesc, dwTimeOut, pvAsyncContext, phAsyncHandle,
267 dwFlags);
268 return E_NOTIMPL;
269}

◆ IDirectPlay8ServerImpl_SetApplicationDesc()

static HRESULT WINAPI IDirectPlay8ServerImpl_SetApplicationDesc ( IDirectPlay8Server *  iface,
const DPN_APPLICATION_DESC *  pad,
DWORD  dwFlags 
)
static

Definition at line 245 of file server.c.

246{
248 FIXME("(%p)->(%p %ld)\n", This, pad, dwFlags);
249 return E_NOTIMPL;
250}

◆ IDirectPlay8ServerImpl_SetCaps()

static HRESULT WINAPI IDirectPlay8ServerImpl_SetCaps ( IDirectPlay8Server *  iface,
const DPN_CAPS *  pdpCaps,
DWORD  dwFlags 
)
static

Definition at line 376 of file server.c.

377{
379 FIXME("(%p)->(%p %ld)\n", This, pdpCaps, dwFlags);
380 return E_NOTIMPL;
381}

◆ IDirectPlay8ServerImpl_SetGroupInfo()

static HRESULT WINAPI IDirectPlay8ServerImpl_SetGroupInfo ( IDirectPlay8Server *  iface,
DPNID  dpnid,
DPN_GROUP_INFO *  pdpnGroupInfo,
PVOID  pvAsyncContext,
DPNHANDLE *  phAsyncHandle,
DWORD  dwFlags 
)
static

Definition at line 303 of file server.c.

305{
307 FIXME("(%p)->(%ld %p %p %p %ld)\n", This, dpnid, pdpnGroupInfo, pvAsyncContext, phAsyncHandle, dwFlags);
308 return E_NOTIMPL;
309}

◆ IDirectPlay8ServerImpl_SetServerInfo()

static HRESULT WINAPI IDirectPlay8ServerImpl_SetServerInfo ( IDirectPlay8Server *  iface,
const DPN_PLAYER_INFO *  pdpnPlayerInfo,
PVOID  pvAsyncContext,
DPNHANDLE *  phAsyncHandle,
DWORD  dwFlags 
)
static

Definition at line 167 of file server.c.

169{
171
172 FIXME("(%p)->(%p %p %p %lx) Semi-stub\n", This, pdpnPlayerInfo, pvAsyncContext, phAsyncHandle, dwFlags);
173
174 if(!pdpnPlayerInfo)
175 return E_POINTER;
176
177 if(!This->msghandler)
179
180 if(phAsyncHandle)
181 FIXME("Async handle currently not supported.\n");
182
183 if (pdpnPlayerInfo->dwInfoFlags & DPNINFO_NAME)
184 {
185 free(This->servername);
186 This->servername = NULL;
187
188 if(pdpnPlayerInfo->pwszName)
189 {
190 This->servername = wcsdup(pdpnPlayerInfo->pwszName);
191 if (!This->servername)
192 return E_OUTOFMEMORY;
193 }
194 }
195
196 if (pdpnPlayerInfo->dwInfoFlags & DPNINFO_DATA)
197 {
198 free(This->data);
199 This->data = NULL;
200 This->datasize = 0;
201
202 if(!pdpnPlayerInfo->pvData && pdpnPlayerInfo->dwDataSize)
203 return E_POINTER;
204
205 if(pdpnPlayerInfo->dwDataSize && pdpnPlayerInfo->pvData)
206 {
207 This->data = malloc(pdpnPlayerInfo->dwDataSize);
208 if (!This->data)
209 return E_OUTOFMEMORY;
210
211 This->datasize = pdpnPlayerInfo->dwDataSize;
212
213 memcpy(This->data, pdpnPlayerInfo->pvData, pdpnPlayerInfo->dwDataSize);
214 }
215 }
216
217 /* TODO: Send DPN_MSGID_SERVER_INFO message to all players. */
218 return S_OK;
219}
#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

◆ IDirectPlay8ServerImpl_SetSPCaps()

static HRESULT WINAPI IDirectPlay8ServerImpl_SetSPCaps ( IDirectPlay8Server *  iface,
const GUID *  pguidSP,
const DPN_SP_CAPS *  pdpspCaps,
DWORD  dwFlags 
)
static

Definition at line 383 of file server.c.

384{
386 FIXME("(%p)->(%p %p %ld)\n", This, pguidSP, pdpspCaps, dwFlags);
387 return E_NOTIMPL;
388}

◆ impl_from_IDirectPlay8Server()

static IDirectPlay8ServerImpl * impl_from_IDirectPlay8Server ( IDirectPlay8Server *  iface)
inlinestatic

Definition at line 52 of file server.c.

53{
54 return CONTAINING_RECORD(iface, IDirectPlay8ServerImpl, IDirectPlay8Server_iface);
55}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by IDirectPlay8ServerImpl_AddPlayerToGroup(), IDirectPlay8ServerImpl_AddRef(), IDirectPlay8ServerImpl_CancelAsyncOperation(), IDirectPlay8ServerImpl_Close(), IDirectPlay8ServerImpl_CreateGroup(), IDirectPlay8ServerImpl_DestroyClient(), IDirectPlay8ServerImpl_DestroyGroup(), IDirectPlay8ServerImpl_EnumGroupMembers(), IDirectPlay8ServerImpl_EnumPlayersAndGroups(), IDirectPlay8ServerImpl_EnumServiceProviders(), IDirectPlay8ServerImpl_GetApplicationDesc(), IDirectPlay8ServerImpl_GetCaps(), IDirectPlay8ServerImpl_GetClientAddress(), IDirectPlay8ServerImpl_GetClientInfo(), IDirectPlay8ServerImpl_GetConnectionInfo(), IDirectPlay8ServerImpl_GetGroupContext(), IDirectPlay8ServerImpl_GetGroupInfo(), IDirectPlay8ServerImpl_GetLocalHostAddresses(), IDirectPlay8ServerImpl_GetPlayerContext(), IDirectPlay8ServerImpl_GetSendQueueInfo(), IDirectPlay8ServerImpl_GetSPCaps(), IDirectPlay8ServerImpl_Host(), IDirectPlay8ServerImpl_Initialize(), IDirectPlay8ServerImpl_QueryInterface(), IDirectPlay8ServerImpl_RegisterLobby(), IDirectPlay8ServerImpl_Release(), IDirectPlay8ServerImpl_RemovePlayerFromGroup(), IDirectPlay8ServerImpl_ReturnBuffer(), IDirectPlay8ServerImpl_SendTo(), IDirectPlay8ServerImpl_SetApplicationDesc(), IDirectPlay8ServerImpl_SetCaps(), IDirectPlay8ServerImpl_SetGroupInfo(), IDirectPlay8ServerImpl_SetServerInfo(), and IDirectPlay8ServerImpl_SetSPCaps().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( dpnet  )

Variable Documentation

◆ DirectPlay8ServerVtbl

const IDirectPlay8ServerVtbl DirectPlay8ServerVtbl
static

Definition at line 413 of file server.c.

Referenced by DPNET_CreateDirectPlay8Server().