ReactOS 0.4.15-dev-7654-g6bc40d3
lobbysp.h
Go to the documentation of this file.
1/*
2 * Copyright 2001 Peter Hunnisett
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __WINE_LOBBY_SP_H
20#define __WINE_LOBBY_SP_H
21
22#include <stdarg.h>
23
24#include "windef.h"
25#include "winbase.h"
26#include "winuser.h"
27#include "dplobby.h"
28
29/* GUID for IDPLobbySP {5A4E5A20-2CED-11d0-A889-00A0C905433C} */
30DEFINE_GUID(IID_IDPLobbySP, 0x5a4e5a20, 0x2ced, 0x11d0, 0xa8, 0x89, 0x0, 0xa0, 0xc9, 0x5, 0x43, 0x3c);
31typedef struct IDPLobbySP *LPDPLOBBYSP;
32
33/* For SP. Top 16 bits is dplay, bottom 16 is SP */
34#define DPLSP_MAJORVERSION 0x00050000
35
37{
43
45{
51
53{
62
64{
72
74{
81
82typedef struct SPDATA_CLOSE
83{
87
88typedef struct SPDATA_CREATEGROUP
89{
98
100{
110
112{
121
123{
131
133{
142
144{
150
152{
158
160{
166
168{
174
176{
181
183{
188
190{
195
197{
204
206{
210
211typedef struct SPDATA_GETCAPS
212{
218
220{
228
230{
237
239{
246
248{
255
257{
264
265typedef struct SPDATA_OPEN
266{
273
274typedef struct SPDATA_SEND
275{
284
285typedef struct SPDATA_CHATMESSAGE
286{
294
296{
303
305{
313
315{
322
324{
331
333{
341
343{
350
352{
359
361{
365
366typedef struct SPDATA_SHUTDOWN
367{
371
373{
379
381{
387
388/* Prototypes for callbacks returned by DPLSPInit */
417
418/* Callback table for dplay to call into service provider */
419typedef struct SP_CALLBACKS
420{
451
452typedef struct SPDATA_INIT
453{
459
461
462/* Define the COM interface */
463#define INTERFACE IDPLobbySP
465{
466 /*** IUnknown methods ***/
470 /*** IDPLobbySP methods ***/
471 STDMETHOD(AddGroupToGroup)(THIS_ LPSPDATA_ADDREMOTEGROUPTOGROUP argtg ) PURE;
472 STDMETHOD(AddPlayerToGroup)(THIS_ LPSPDATA_ADDREMOTEPLAYERTOGROUP arptg ) PURE;
474 STDMETHOD(CreateGroupInGroup)(THIS_ LPSPDATA_CREATEREMOTEGROUPINGROUP crgig ) PURE;
475 STDMETHOD(DeleteGroupFromGroup)(THIS_ LPSPDATA_DELETEREMOTEGROUPFROMGROUP drgfg ) PURE;
476 STDMETHOD(DeletePlayerFromGroup)(THIS_ LPSPDATA_DELETEREMOTEPLAYERFROMGROUP drpfg ) PURE;
478 STDMETHOD(EnumSessionsResponse)(THIS_ LPSPDATA_ENUMSESSIONSRESPONSE er ) PURE;
479 STDMETHOD(GetSPDataPointer)(THIS_ LPVOID * lplpData ) PURE;
480 STDMETHOD(HandleMessage)(THIS_ LPSPDATA_HANDLEMESSAGE hm ) PURE;
481 STDMETHOD(SendChatMessage)(THIS_ LPSPDATA_CHATMESSAGE cm ) PURE;
482 STDMETHOD(SetGroupName)(THIS_ LPSPDATA_SETREMOTEGROUPNAME srgn ) PURE;
483 STDMETHOD(SetPlayerName)(THIS_ LPSPDATA_SETREMOTEPLAYERNAME srpn ) PURE;
484 STDMETHOD(SetSessionDesc)(THIS_ LPSPDATA_SETSESSIONDESC ssd ) PURE;
485 STDMETHOD(SetSPDataPointer)(THIS_ LPVOID lpData ) PURE;
487};
488#undef INTERFACE
489
490#if !defined (__cplusplus) || defined(CINTERFACE)
491/*** IUnknown methods ***/
492#define IDPLobbySP_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
493#define IDPLobbySP_AddRef(p) (p)->lpVtbl->AddRef(p)
494#define IDPLobbySP_Release(p) (p)->lpVtbl->Release(p)
495
496/*** IDPLobbySP methods ***/
497#define IDPLobbySP_AddGroupToGroup(p,a) (p)->lpVtbl->AddGroupToGroup(p,a)
498#define IDPLobbySP_AddPlayerToGroup(p,a) (p)->lpVtbl->AddPlayerToGroup(p,a)
499#define IDPLobbySP_CreateGroup(p,a) (p)->lpVtbl->CreateGroup(p,a)
500#define IDPLobbySP_CreateGroupInGroup(p,a) (p)->lpVtbl->CreateGroupInGroup(p,a)
501#define IDPLobbySP_DeleteGroupFromGroup(p,a) (p)->lpVtbl->DeleteGroupFromGroup(p,a)
502#define IDPLobbySP_DeletePlayerFromGroup(p,a) (p)->lpVtbl->DeletePlayerFromGroup(p,a)
503#define IDPLobbySP_DestroyGroup(p,a) (p)->lpVtbl->DestroyGroup(p,a)
504#define IDPLobbySP_EnumSessionsResponse(p,a) (p)->lpVtbl->EnumSessionsResponse(p,a)
505#define IDPLobbySP_GetSPDataPointer(p,a) (p)->lpVtbl->GetSPDataPointer(p,a)
506#define IDPLobbySP_HandleMessage(p,a) (p)->lpVtbl->HandleMessage(p,a)
507#define IDPLobbySP_SetGroupName(p,a) (p)->lpVtbl->SetGroupName(p,a)
508#define IDPLobbySP_SetPlayerName(p,a) (p)->lpVtbl->SetPlayerName(p,a)
509#define IDPLobbySP_SetSessionDesc(p,a) (p)->lpVtbl->SetSessionDesc(p,a)
510#define IDPLobbySP_StartSession(p,a) (p)->lpVtbl->StartSession(p,a)
511#define IDPLobbySP_SetSPDataPointer(p,a) (p)->lpVtbl->SetSPDataPointer(p,a)
512#endif
513
514/* This variable is exported from the DLL at ordinal 6 to be accessed by the
515 * SP directly. This is the same variable that the DP SP will use.
516 */
518
519#endif
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define PURE
Definition: basetyps.h:64
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
_In_ BOOLEAN Release
Definition: cdrom.h:920
DWORD gdwDPlaySPRefCount
Definition: dplayx_main.c:74
unsigned long DWORD
Definition: ntddk_ex.h:95
REFIID riid
Definition: atlbase.h:39
struct SPDATA_CLOSE * LPSPDATA_CLOSE
HRESULT(WINAPI * LPSP_ADDPLAYERTOGROUP)(LPSPDATA_ADDPLAYERTOGROUP)
Definition: lobbysp.h:390
struct SPDATA_DESTROYGROUP * LPSPDATA_DESTROYGROUP
struct IDPLobbySP * LPDPLOBBYSP
Definition: lobbysp.h:31
struct SPDATA_DELETEREMOTEGROUPFROMGROUP * LPSPDATA_DELETEREMOTEGROUPFROMGROUP
struct SPDATA_HANDLEMESSAGE * LPSPDATA_HANDLEMESSAGE
struct SPDATA_SETREMOTEPLAYERNAME * LPSPDATA_SETREMOTEPLAYERNAME
struct SPDATA_DELETEPLAYERFROMGROUP * LPSPDATA_DELETEPLAYERFROMGROUP
HRESULT(WINAPI * LPSP_GETPLAYERDATA)(LPSPDATA_GETPLAYERDATA)
Definition: lobbysp.h:405
HRESULT(WINAPI * LPSP_DESTROYGROUP)(LPSPDATA_DESTROYGROUP)
Definition: lobbysp.h:398
HRESULT(WINAPI * LPSP_DESTROYPLAYER)(LPSPDATA_DESTROYPLAYER)
Definition: lobbysp.h:399
struct SPDATA_GETPLAYERDATA * LPSPDATA_GETPLAYERDATA
HRESULT(WINAPI * LPSP_INIT)(LPSPDATA_INIT)
Definition: lobbysp.h:460
HRESULT(WINAPI * LPSP_ADDGROUPTOGROUP)(LPSPDATA_ADDGROUPTOGROUP)
Definition: lobbysp.h:389
struct SPDATA_CREATEPLAYER * LPSPDATA_CREATEPLAYER
struct SPDATA_DESTROYREMOTEGROUP * LPSPDATA_DESTROYREMOTEGROUP
struct SPDATA_ADDGROUPTOGROUP * LPSPDATA_ADDGROUPTOGROUP
struct SPDATA_DESTROYPLAYER * LPSPDATA_DESTROYPLAYER
struct SPDATA_SETPLAYERDATA * LPSPDATA_SETPLAYERDATA
HRESULT(WINAPI * LPSP_GETCAPS)(LPSPDATA_GETCAPS)
Definition: lobbysp.h:401
struct SPDATA_DELETEGROUPFROMGROUP * LPSPDATA_DELETEGROUPFROMGROUP
HRESULT(WINAPI * LPSP_GETGROUPDATA)(LPSPDATA_GETGROUPDATA)
Definition: lobbysp.h:403
struct SPDATA_BUILDPARENTALHIERARCHY * LPSPDATA_BUILDPARENTALHIERARCHY
struct SPDATA_DELETEREMOTEPLAYERFROMGROUP * LPSPDATA_DELETEREMOTEPLAYERFROMGROUP
HRESULT(WINAPI * LPSP_SETPLAYERDATA)(LPSPDATA_SETPLAYERDATA)
Definition: lobbysp.h:413
struct SPDATA_CREATEGROUPINGROUP * LPSPDATA_CREATEGROUPINGROUP
HRESULT(WINAPI * LPSP_CLOSE)(LPSPDATA_CLOSE)
Definition: lobbysp.h:392
struct SPDATA_GETGROUPDATA * LPSPDATA_GETGROUPDATA
HRESULT(WINAPI * LPSP_SHUTDOWN)(LPSPDATA_SHUTDOWN)
Definition: lobbysp.h:415
struct SPDATA_STARTSESSIONCOMMAND * LPSPDATA_STARTSESSIONCOMMAND
HRESULT(WINAPI * LPSP_ENUMSESSIONS)(LPSPDATA_ENUMSESSIONS)
Definition: lobbysp.h:400
HRESULT(WINAPI * LPSP_STARTSESSION)(LPSPDATA_STARTSESSION)
Definition: lobbysp.h:416
HRESULT(WINAPI * LPSP_DELETEPLAYERFROMGROUP)(LPSPDATA_DELETEPLAYERFROMGROUP)
Definition: lobbysp.h:397
HRESULT(WINAPI * LPSP_CREATEGROUPINGROUP)(LPSPDATA_CREATEGROUPINGROUP)
Definition: lobbysp.h:394
HRESULT(WINAPI * LPSP_CREATEPLAYER)(LPSPDATA_CREATEPLAYER)
Definition: lobbysp.h:395
HRESULT(WINAPI * LPSP_SETGROUPNAME)(LPSPDATA_SETGROUPNAME)
Definition: lobbysp.h:412
HRESULT(WINAPI * LPSP_SETPLAYERNAME)(LPSPDATA_SETPLAYERNAME)
Definition: lobbysp.h:414
struct SPDATA_OPEN * LPSPDATA_OPEN
struct SPDATA_ENUMSESSIONSRESPONSE * LPSPDATA_ENUMSESSIONSRESPONSE
struct SPDATA_SETGROUPNAME * LPSPDATA_SETGROUPNAME
HRESULT(WINAPI * LPSP_DELETEGROUPFROMGROUP)(LPSPDATA_DELETEGROUPFROMGROUP)
Definition: lobbysp.h:396
struct SPDATA_SETGROUPCONNECTIONSETTINGS * LPSPDATA_SETGROUPCONNECTIONSETTINGS
struct SPDATA_SETPLAYERNAME * LPSPDATA_SETPLAYERNAME
HRESULT(WINAPI * LPSP_SEND)(LPSPDATA_SEND)
Definition: lobbysp.h:408
struct SPDATA_CREATEREMOTEGROUP * LPSPDATA_CREATEREMOTEGROUP
struct SPDATA_ADDREMOTEPLAYERTOGROUP * LPSPDATA_ADDREMOTEPLAYERTOGROUP
HRESULT(WINAPI * LPSP_SENDCHATMESSAGE)(LPSPDATA_CHATMESSAGE)
Definition: lobbysp.h:409
struct SPDATA_GETGROUPCONNECTIONSETTINGS * LPSPDATA_GETGROUPCONNECTIONSETTINGS
struct SPDATA_ENUMSESSIONS * LPSPDATA_ENUMSESSIONS
struct SPDATA_CREATEREMOTEGROUPINGROUP * LPSPDATA_CREATEREMOTEGROUPINGROUP
struct SPDATA_GETPLAYERCAPS * LPSPDATA_GETPLAYERCAPS
struct SPDATA_STARTSESSION * LPSPDATA_STARTSESSION
DWORD gdwDPlaySPRefCount DECLSPEC_HIDDEN
HRESULT(WINAPI * LPSP_BUILDPARENTALHIERARCHY)(LPSPDATA_BUILDPARENTALHIERARCHY)
Definition: lobbysp.h:391
struct SPDATA_GETCAPS * LPSPDATA_GETCAPS
struct SPDATA_ADDPLAYERTOGROUP * LPSPDATA_ADDPLAYERTOGROUP
struct SPDATA_ADDREMOTEGROUPTOGROUP * LPSPDATA_ADDREMOTEGROUPTOGROUP
struct SP_CALLBACKS * LPSP_CALLBACKS
HRESULT(WINAPI * LPSP_GETGROUPCONNECTIONSETTINGS)(LPSPDATA_GETGROUPCONNECTIONSETTINGS)
Definition: lobbysp.h:402
HRESULT(WINAPI * LPSP_GETPLAYERCAPS)(LPSPDATA_GETPLAYERCAPS)
Definition: lobbysp.h:404
struct SPDATA_SETREMOTEGROUPNAME * LPSPDATA_SETREMOTEGROUPNAME
struct SPDATA_SETSESSIONDESC * LPSPDATA_SETSESSIONDESC
HRESULT(WINAPI * LPSP_HANDLEMESSAGE)(LPSPDATA_HANDLEMESSAGE)
Definition: lobbysp.h:406
HRESULT(WINAPI * LPSP_OPEN)(LPSPDATA_OPEN)
Definition: lobbysp.h:407
struct SPDATA_INIT * LPSPDATA_INIT
struct SPDATA_SHUTDOWN * LPSPDATA_SHUTDOWN
HRESULT(WINAPI * LPSP_SETGROUPCONNECTIONSETTINGS)(LPSPDATA_SETGROUPCONNECTIONSETTINGS)
Definition: lobbysp.h:410
HRESULT(WINAPI * LPSP_SETGROUPDATA)(LPSPDATA_SETGROUPDATA)
Definition: lobbysp.h:411
struct SPDATA_SETGROUPDATA * LPSPDATA_SETGROUPDATA
struct SPDATA_CREATEGROUP * LPSPDATA_CREATEGROUP
struct SPDATA_SEND * LPSPDATA_SEND
struct SPDATA_CHATMESSAGE * LPSPDATA_CHATMESSAGE
HRESULT(WINAPI * LPSP_CREATEGROUP)(LPSPDATA_CREATEGROUP)
Definition: lobbysp.h:393
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
#define REFIID
Definition: guiddef.h:118
LPDPLOBBYSP lpISP
Definition: lobbysp.h:39
LPDPLOBBYSP lpISP
Definition: lobbysp.h:47
LPDPLOBBYSP lpISP
Definition: lobbysp.h:288
LPDPCHAT lpChat
Definition: lobbysp.h:292
LPDPLOBBYSP lpISP
Definition: lobbysp.h:85
DWORD dwSize
Definition: lobbysp.h:84
DWORD dwDataSize
Definition: lobbysp.h:95
LPDPNAME lpName
Definition: lobbysp.h:93
LPDPLOBBYSP lpISP
Definition: lobbysp.h:91
LPDPLOBBYSP lpISP
Definition: lobbysp.h:135
LPDPNAME lpName
Definition: lobbysp.h:137
LPDPLOBBYSP lpISP
Definition: lobbysp.h:178
LPDPLOBBYSP lpISP
Definition: lobbysp.h:192
LPDPSESSIONDESC2 lpsd
Definition: lobbysp.h:208
LPDPSESSIONDESC2 lpsd
Definition: lobbysp.h:200
LPDPLOBBYSP lpISP
Definition: lobbysp.h:199
DWORD dwSize
Definition: lobbysp.h:213
DWORD dwFlags
Definition: lobbysp.h:215
LPDPLOBBYSP lpISP
Definition: lobbysp.h:214
LPDPCAPS lpcaps
Definition: lobbysp.h:216
LPDWORD lpdwDataSize
Definition: lobbysp.h:234
LPDPLOBBYSP lpISP
Definition: lobbysp.h:232
LPDPLOBBYSP lpISP
Definition: lobbysp.h:241
LPDWORD lpdwDataSize
Definition: lobbysp.h:252
LPDPLOBBYSP lpISP
Definition: lobbysp.h:250
LPSP_CALLBACKS lpCB
Definition: lobbysp.h:454
LPDPADDRESS lpAddress
Definition: lobbysp.h:457
DWORD dwSPVersion
Definition: lobbysp.h:455
LPDPLOBBYSP lpISP
Definition: lobbysp.h:456
LPCDPCREDENTIALS lpCredentials
Definition: lobbysp.h:271
LPDPLOBBYSP lpISP
Definition: lobbysp.h:268
LPDPSESSIONDESC2 lpsd
Definition: lobbysp.h:269
DWORD dwSize
Definition: lobbysp.h:267
DWORD dwFlags
Definition: lobbysp.h:270
LPDPLOBBYSP lpISP
Definition: lobbysp.h:277
DWORD dwFromID
Definition: lobbysp.h:278
DWORD dwBufSize
Definition: lobbysp.h:282
LPVOID lpBuffer
Definition: lobbysp.h:281
DWORD dwFlags
Definition: lobbysp.h:280
DWORD dwToID
Definition: lobbysp.h:279
DWORD dwSize
Definition: lobbysp.h:276
LPDPLOBBYSP lpISP
Definition: lobbysp.h:307
LPDPNAME lpName
Definition: lobbysp.h:319
LPDPLOBBYSP lpISP
Definition: lobbysp.h:317
LPDPLOBBYSP lpISP
Definition: lobbysp.h:335
LPDPLOBBYSP lpISP
Definition: lobbysp.h:345
LPDPSESSIONDESC2 lpsd
Definition: lobbysp.h:363
DWORD dwSize
Definition: lobbysp.h:368
LPDPLOBBYSP lpISP
Definition: lobbysp.h:369
LPDPLCONNECTION lpConn
Definition: lobbysp.h:385
LPDPLOBBYSP lpISP
Definition: lobbysp.h:375
LPSP_GETPLAYERCAPS GetPlayerCaps
Definition: lobbysp.h:438
LPSP_OPEN Open
Definition: lobbysp.h:440
LPSP_SETGROUPDATA SetGroupData
Definition: lobbysp.h:444
LPSP_DESTROYGROUP DestroyGroup
Definition: lobbysp.h:432
LPSP_SETGROUPCONNECTIONSETTINGS SetGroupConnectionSettings
Definition: lobbysp.h:443
LPSP_DELETEGROUPFROMGROUP DeleteGroupFromGroup
Definition: lobbysp.h:430
LPSP_DESTROYPLAYER DestroyPlayer
Definition: lobbysp.h:433
LPSP_SETPLAYERDATA SetPlayerData
Definition: lobbysp.h:446
LPSP_SETPLAYERNAME SetPlayerName
Definition: lobbysp.h:447
LPSP_GETGROUPCONNECTIONSETTINGS GetGroupConnectionSettings
Definition: lobbysp.h:436
LPSP_ADDPLAYERTOGROUP AddPlayerToGroup
Definition: lobbysp.h:424
LPSP_DELETEPLAYERFROMGROUP DeletePlayerFromGroup
Definition: lobbysp.h:431
LPSP_GETPLAYERDATA GetPlayerData
Definition: lobbysp.h:439
LPSP_ENUMSESSIONS EnumSessions
Definition: lobbysp.h:434
LPSP_ADDGROUPTOGROUP AddGroupToGroup
Definition: lobbysp.h:423
LPSP_CREATEPLAYER CreatePlayer
Definition: lobbysp.h:429
LPSP_CLOSE Close
Definition: lobbysp.h:426
LPSP_SEND Send
Definition: lobbysp.h:441
LPSP_SENDCHATMESSAGE SendChatMessage
Definition: lobbysp.h:442
LPSP_GETGROUPDATA GetGroupData
Definition: lobbysp.h:437
LPSP_STARTSESSION StartSession
Definition: lobbysp.h:449
LPSP_SHUTDOWN Shutdown
Definition: lobbysp.h:448
DWORD dwSize
Definition: lobbysp.h:421
LPSP_BUILDPARENTALHIERARCHY BuildParentalHierarchy
Definition: lobbysp.h:425
LPSP_CREATEGROUPINGROUP CreateGroupInGroup
Definition: lobbysp.h:428
LPSP_CREATEGROUP CreateGroup
Definition: lobbysp.h:427
LPSP_GETCAPS GetCaps
Definition: lobbysp.h:435
LPSP_SETGROUPNAME SetGroupName
Definition: lobbysp.h:445
DWORD dwFlags
Definition: lobbysp.h:422
uint32_t * LPDWORD
Definition: typedefs.h:59
uint32_t ULONG
Definition: typedefs.h:59
#define CreateGroup
Definition: userenv.h:207
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082
#define HRESULT
Definition: msvc.h:7
#define WINAPI
Definition: msvc.h:6