DirectX 5 Redocumentation
A redocumentation of DirectX 5, brought to you by a bunch of Infomaniacs.
dplay.h
Go to the documentation of this file.
1/*==========================================================================;
2 *
3 * Copyright (C) 1994-1997 Microsoft Corporation. All Rights Reserved.
4 *
5 * File: dplay.h
6 * Content: DirectPlay include file
7 *
8 ***************************************************************************/
9
10#ifndef __DPLAY_INCLUDED__
11#define __DPLAY_INCLUDED__
12
13#include <ole2.h> // for DECLARE_INTERFACE and HRESULT
14
15#define _FACDP 0x877
16#define MAKE_DPHRESULT( code ) MAKE_HRESULT( 1, _FACDP, code )
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22/*
23 * GUIDS used by DirectPlay objects
24 */
25DEFINE_GUID(IID_IDirectPlay2, 0x2b74f7c0, 0x9154, 0x11cf, 0xa9, 0xcd, 0x0, 0xaa, 0x0, 0x68, 0x86, 0xe3);
26DEFINE_GUID(IID_IDirectPlay2A,0x9d460580, 0xa822, 0x11cf, 0x96, 0xc, 0x0, 0x80, 0xc7, 0x53, 0x4e, 0x82);
27
28DEFINE_GUID(IID_IDirectPlay3, 0x133efe40, 0x32dc, 0x11d0, 0x9c, 0xfb, 0x0, 0xa0, 0xc9, 0xa, 0x43, 0xcb);
29DEFINE_GUID(IID_IDirectPlay3A,0x133efe41, 0x32dc, 0x11d0, 0x9c, 0xfb, 0x0, 0xa0, 0xc9, 0xa, 0x43, 0xcb);
30
31// {D1EB6D20-8923-11d0-9D97-00A0C90A43CB}
32DEFINE_GUID(CLSID_DirectPlay,0xd1eb6d20, 0x8923, 0x11d0, 0x9d, 0x97, 0x0, 0xa0, 0xc9, 0xa, 0x43, 0xcb);
33
34/*
35 * GUIDS used by Service Providers shipped with DirectPlay
36 * Use these to identify Service Provider returned by EnumConnections
37 */
38
39// GUID for IPX service provider
40// {685BC400-9D2C-11cf-A9CD-00AA006886E3}
41DEFINE_GUID(DPSPGUID_IPX,
420x685bc400, 0x9d2c, 0x11cf, 0xa9, 0xcd, 0x0, 0xaa, 0x0, 0x68, 0x86, 0xe3);
43
44// GUID for TCP/IP service provider
45// 36E95EE0-8577-11cf-960C-0080C7534E82
46DEFINE_GUID(DPSPGUID_TCPIP,
470x36E95EE0, 0x8577, 0x11cf, 0x96, 0xc, 0x0, 0x80, 0xc7, 0x53, 0x4e, 0x82);
48
49// GUID for Serial service provider
50// {0F1D6860-88D9-11cf-9C4E-00A0C905425E}
51DEFINE_GUID(DPSPGUID_SERIAL,
520xf1d6860, 0x88d9, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
53
54// GUID for Modem service provider
55// {44EAA760-CB68-11cf-9C4E-00A0C905425E}
56DEFINE_GUID(DPSPGUID_MODEM,
570x44eaa760, 0xcb68, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
58
59/****************************************************************************
60 *
61 * DirectPlay Structures
62 *
63 * Various structures used to invoke DirectPlay.
64 *
65 ****************************************************************************/
66
67#ifndef IDIRECTPLAY2_OR_GREATER
68typedef struct IDirectPlay FAR *LPDIRECTPLAY;
69#else
70typedef struct IUnknown FAR *LPDIRECTPLAY;
71#endif
72
73typedef struct IDirectPlay2 FAR *LPDIRECTPLAY2;
74typedef struct IDirectPlay2 FAR *LPDIRECTPLAY2A;
75typedef struct IDirectPlay2 IDirectPlay2A;
76
77typedef struct IDirectPlay3 FAR *LPDIRECTPLAY3;
78typedef struct IDirectPlay3 FAR *LPDIRECTPLAY3A;
79typedef struct IDirectPlay3 IDirectPlay3A;
80
85typedef DWORD DPID, FAR *LPDPID;
86
90#define DPID_SYSMSG 0
91
95#define DPID_ALLPLAYERS 0
96
100#define DPID_SERVERPLAYER 1
101
105#define DPID_UNKNOWN 0xFFFFFFFF
106
110typedef struct
111{
127
133#define DPCAPS_ISHOST 0x00000002
134
139#define DPCAPS_GROUPOPTIMIZED 0x00000008
140
145#define DPCAPS_KEEPALIVEOPTIMIZED 0x00000010
146
151#define DPCAPS_GUARANTEEDOPTIMIZED 0x00000020
152
156#define DPCAPS_GUARANTEEDSUPPORTED 0x00000040
157
161#define DPCAPS_SIGNINGSUPPORTED 0x00000080
162
166#define DPCAPS_ENCRYPTIONSUPPORTED 0x00000100
167
168
173typedef struct
174{
182 union
183 {
186 };
187 union
188 {
191 };
199
205
209#define DPSESSION_NEWPLAYERSDISABLED 0x00000001
210
217#define DPSESSION_MIGRATEHOST 0x00000004
218
224#define DPSESSION_NOMESSAGEID 0x00000008
225
226
232#define DPSESSION_JOINDISABLED 0x00000020
233
238#define DPSESSION_KEEPALIVE 0x00000040
239
244#define DPSESSION_NODATAMESSAGES 0x00000080
245
250#define DPSESSION_SECURESERVER 0x00000100
251
256#define DPSESSION_PRIVATE 0x00000200
257
261#define DPSESSION_PASSWORDREQUIRED 0x00000400
262
266#define DPSESSION_MULTICASTSERVER 0x00000800
267
272#define DPSESSION_CLIENTSERVER 0x00001000
273
278typedef struct
279{
282 union
283 {
286 };
287 union
288 {
291 };
292
294
298typedef const DPNAME FAR *LPCDPNAME;
299
303typedef struct
304{
307 union
308 {
311 };
312 union
313 {
316 };
317 union
318 {
319 LPWSTR lpszDomain;
321 };
323
325
330typedef struct
331{
334 union
335 {
338 };
339 union
340 {
343 };
347
349
353typedef struct
354{
357 union
358 {
361 };
363
365
369typedef const GUID FAR *LPCGUID;
370
371/*
372 * Used to hold all in the informaion needed to connect
373 * an application to a session or create a session
374 */
375typedef struct
376{
381 GUID guidSP;
385
386/*
387 * A constant pointer to DPLCONNECTION
388 */
390
394typedef struct
395{
398 union
399 {
400 LPWSTR lpszMessage;
402 };
404
405/****************************************************************************
406 *
407 * Prototypes for DirectPlay callback functions
408 *
409 ****************************************************************************/
410
414typedef BOOL (FAR PASCAL * LPDPENUMSESSIONSCALLBACK2)(
415 LPCDPSESSIONDESC2 lpThisSD,
416 LPDWORD lpdwTimeOut,
419
428#define DPESC_TIMEDOUT 0x00000001
429
430
436typedef BOOL (FAR PASCAL *LPDPENUMPLAYERSCALLBACK2)(
437 DPID dpId,
442
443
449typedef BOOL (FAR PASCAL * LPDPENUMDPCALLBACK)(
450 LPGUID lpguidSP,
451 LPWSTR lpSPName,
455
461typedef BOOL (FAR PASCAL * LPDPENUMDPCALLBACKA)(
462 LPGUID lpguidSP,
463 LPSTR lpSPName,
467
471typedef BOOL (FAR PASCAL * LPDPENUMCONNECTIONSCALLBACK)(
472 LPCGUID lpguidSP,
478
479
480/*
481 * API's
482 */
483
484#ifdef UNICODE
485#define DirectPlayEnumerate DirectPlayEnumerateW
486#else
487#define DirectPlayEnumerate DirectPlayEnumerateA
488#endif // UNICODE
489
490extern HRESULT WINAPI DirectPlayEnumerateA( LPDPENUMDPCALLBACKA, LPVOID );
491extern HRESULT WINAPI DirectPlayEnumerateW( LPDPENUMDPCALLBACK, LPVOID );
492extern HRESULT WINAPI DirectPlayCreate( LPGUID lpGUID, LPDIRECTPLAY *lplpDP, IUnknown *pUnk);
493
494/****************************************************************************
495 *
496 * IDirectPlay2 (and IDirectPlay2A) Interface
497 *
498 ****************************************************************************/
499
500#undef INTERFACE
501#define INTERFACE IDirectPlay2
503{
504 /*** IUnknown methods ***/
505 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
506 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
507 STDMETHOD_(ULONG,Release) (THIS) PURE;
508 /*** IDirectPlay2 methods ***/
509 STDMETHOD(AddPlayerToGroup) (THIS_ DPID, DPID) PURE;
510 STDMETHOD(Close) (THIS) PURE;
511 STDMETHOD(CreateGroup) (THIS_ LPDPID,LPDPNAME,LPVOID,DWORD,DWORD) PURE;
512 STDMETHOD(CreatePlayer) (THIS_ LPDPID,LPDPNAME,HANDLE,LPVOID,DWORD,DWORD) PURE;
513 STDMETHOD(DeletePlayerFromGroup)(THIS_ DPID,DPID) PURE;
514 STDMETHOD(DestroyGroup) (THIS_ DPID) PURE;
515 STDMETHOD(DestroyPlayer) (THIS_ DPID) PURE;
516 STDMETHOD(EnumGroupPlayers) (THIS_ DPID,LPGUID,LPDPENUMPLAYERSCALLBACK2,LPVOID,DWORD) PURE;
517 STDMETHOD(EnumGroups) (THIS_ LPGUID,LPDPENUMPLAYERSCALLBACK2,LPVOID,DWORD) PURE;
518 STDMETHOD(EnumPlayers) (THIS_ LPGUID,LPDPENUMPLAYERSCALLBACK2,LPVOID,DWORD) PURE;
519 STDMETHOD(EnumSessions) (THIS_ LPDPSESSIONDESC2,DWORD,LPDPENUMSESSIONSCALLBACK2,LPVOID,DWORD) PURE;
520 STDMETHOD(GetCaps) (THIS_ LPDPCAPS,DWORD) PURE;
521 STDMETHOD(GetGroupData) (THIS_ DPID,LPVOID,LPDWORD,DWORD) PURE;
522 STDMETHOD(GetGroupName) (THIS_ DPID,LPVOID,LPDWORD) PURE;
523 STDMETHOD(GetMessageCount) (THIS_ DPID, LPDWORD) PURE;
524 STDMETHOD(GetPlayerAddress) (THIS_ DPID,LPVOID,LPDWORD) PURE;
525 STDMETHOD(GetPlayerCaps) (THIS_ DPID,LPDPCAPS,DWORD) PURE;
526 STDMETHOD(GetPlayerData) (THIS_ DPID,LPVOID,LPDWORD,DWORD) PURE;
527 STDMETHOD(GetPlayerName) (THIS_ DPID,LPVOID,LPDWORD) PURE;
528 STDMETHOD(GetSessionDesc) (THIS_ LPVOID,LPDWORD) PURE;
529 STDMETHOD(Initialize) (THIS_ LPGUID) PURE;
530 STDMETHOD(Open) (THIS_ LPDPSESSIONDESC2,DWORD) PURE;
531 STDMETHOD(Receive) (THIS_ LPDPID,LPDPID,DWORD,LPVOID,LPDWORD) PURE;
532 STDMETHOD(Send) (THIS_ DPID, DPID, DWORD, LPVOID, DWORD) PURE;
533 STDMETHOD(SetGroupData) (THIS_ DPID,LPVOID,DWORD,DWORD) PURE;
534 STDMETHOD(SetGroupName) (THIS_ DPID,LPDPNAME,DWORD) PURE;
535 STDMETHOD(SetPlayerData) (THIS_ DPID,LPVOID,DWORD,DWORD) PURE;
536 STDMETHOD(SetPlayerName) (THIS_ DPID,LPDPNAME,DWORD) PURE;
537 STDMETHOD(SetSessionDesc) (THIS_ LPDPSESSIONDESC2,DWORD) PURE;
538};
539
540/****************************************************************************
541 *
542 * IDirectPlay2 interface macros
543 *
544 ****************************************************************************/
545
546#if !defined(__cplusplus) || defined(CINTERFACE)
547
548#define IDirectPlay2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
549#define IDirectPlay2_AddRef(p) (p)->lpVtbl->AddRef(p)
550#define IDirectPlay2_Release(p) (p)->lpVtbl->Release(p)
551#define IDirectPlay2_AddPlayerToGroup(p,a,b) (p)->lpVtbl->AddPlayerToGroup(p,a,b)
552#define IDirectPlay2_Close(p) (p)->lpVtbl->Close(p)
553#define IDirectPlay2_CreateGroup(p,a,b,c,d,e) (p)->lpVtbl->CreateGroup(p,a,b,c,d,e)
554#define IDirectPlay2_CreatePlayer(p,a,b,c,d,e,f) (p)->lpVtbl->CreatePlayer(p,a,b,c,d,e,f)
555#define IDirectPlay2_DeletePlayerFromGroup(p,a,b) (p)->lpVtbl->DeletePlayerFromGroup(p,a,b)
556#define IDirectPlay2_DestroyGroup(p,a) (p)->lpVtbl->DestroyGroup(p,a)
557#define IDirectPlay2_DestroyPlayer(p,a) (p)->lpVtbl->DestroyPlayer(p,a)
558#define IDirectPlay2_EnumGroupPlayers(p,a,b,c,d,e) (p)->lpVtbl->EnumGroupPlayers(p,a,b,c,d,e)
559#define IDirectPlay2_EnumGroups(p,a,b,c,d) (p)->lpVtbl->EnumGroups(p,a,b,c,d)
560#define IDirectPlay2_EnumPlayers(p,a,b,c,d) (p)->lpVtbl->EnumPlayers(p,a,b,c,d)
561#define IDirectPlay2_EnumSessions(p,a,b,c,d,e) (p)->lpVtbl->EnumSessions(p,a,b,c,d,e)
562#define IDirectPlay2_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b)
563#define IDirectPlay2_GetMessageCount(p,a,b) (p)->lpVtbl->GetMessageCount(p,a,b)
564#define IDirectPlay2_GetGroupData(p,a,b,c,d) (p)->lpVtbl->GetGroupData(p,a,b,c,d)
565#define IDirectPlay2_GetGroupName(p,a,b,c) (p)->lpVtbl->GetGroupName(p,a,b,c)
566#define IDirectPlay2_GetPlayerAddress(p,a,b,c) (p)->lpVtbl->GetPlayerAddress(p,a,b,c)
567#define IDirectPlay2_GetPlayerCaps(p,a,b,c) (p)->lpVtbl->GetPlayerCaps(p,a,b,c)
568#define IDirectPlay2_GetPlayerData(p,a,b,c,d) (p)->lpVtbl->GetPlayerData(p,a,b,c,d)
569#define IDirectPlay2_GetPlayerName(p,a,b,c) (p)->lpVtbl->GetPlayerName(p,a,b,c)
570#define IDirectPlay2_GetSessionDesc(p,a,b) (p)->lpVtbl->GetSessionDesc(p,a,b)
571#define IDirectPlay2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
572#define IDirectPlay2_Open(p,a,b) (p)->lpVtbl->Open(p,a,b)
573#define IDirectPlay2_Receive(p,a,b,c,d,e) (p)->lpVtbl->Receive(p,a,b,c,d,e)
574#define IDirectPlay2_Send(p,a,b,c,d,e) (p)->lpVtbl->Send(p,a,b,c,d,e)
575#define IDirectPlay2_SetGroupData(p,a,b,c,d) (p)->lpVtbl->SetGroupData(p,a,b,c,d)
576#define IDirectPlay2_SetGroupName(p,a,b,c) (p)->lpVtbl->SetGroupName(p,a,b,c)
577#define IDirectPlay2_SetPlayerData(p,a,b,c,d) (p)->lpVtbl->SetPlayerData(p,a,b,c,d)
578#define IDirectPlay2_SetPlayerName(p,a,b,c) (p)->lpVtbl->SetPlayerName(p,a,b,c)
579#define IDirectPlay2_SetSessionDesc(p,a,b) (p)->lpVtbl->SetSessionDesc(p,a,b)
580
581#else /* C++ */
582
583#define IDirectPlay2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
584#define IDirectPlay2_AddRef(p) (p)->AddRef()
585#define IDirectPlay2_Release(p) (p)->Release()
586#define IDirectPlay2_AddPlayerToGroup(p,a,b) (p)->AddPlayerToGroup(a,b)
587#define IDirectPlay2_Close(p) (p)->Close()
588#define IDirectPlay2_CreateGroup(p,a,b,c,d,e) (p)->CreateGroup(a,b,c,d,e)
589#define IDirectPlay2_CreatePlayer(p,a,b,c,d,e,f) (p)->CreatePlayer(a,b,c,d,e,f)
590#define IDirectPlay2_DeletePlayerFromGroup(p,a,b) (p)->DeletePlayerFromGroup(a,b)
591#define IDirectPlay2_DestroyGroup(p,a) (p)->DestroyGroup(a)
592#define IDirectPlay2_DestroyPlayer(p,a) (p)->DestroyPlayer(a)
593#define IDirectPlay2_EnumGroupPlayers(p,a,b,c,d,e) (p)->EnumGroupPlayers(a,b,c,d,e)
594#define IDirectPlay2_EnumGroups(p,a,b,c,d) (p)->EnumGroups(a,b,c,d)
595#define IDirectPlay2_EnumPlayers(p,a,b,c,d) (p)->EnumPlayers(a,b,c,d)
596#define IDirectPlay2_EnumSessions(p,a,b,c,d,e) (p)->EnumSessions(a,b,c,d,e)
597#define IDirectPlay2_GetCaps(p,a,b) (p)->GetCaps(a,b)
598#define IDirectPlay2_GetMessageCount(p,a,b) (p)->GetMessageCount(a,b)
599#define IDirectPlay2_GetGroupData(p,a,b,c,d) (p)->GetGroupData(a,b,c,d)
600#define IDirectPlay2_GetGroupName(p,a,b,c) (p)->GetGroupName(a,b,c)
601#define IDirectPlay2_GetPlayerAddress(p,a,b,c) (p)->GetPlayerAddress(a,b,c)
602#define IDirectPlay2_GetPlayerCaps(p,a,b,c) (p)->GetPlayerCaps(a,b,c)
603#define IDirectPlay2_GetPlayerData(p,a,b,c,d) (p)->GetPlayerData(a,b,c,d)
604#define IDirectPlay2_GetPlayerName(p,a,b,c) (p)->GetPlayerName(a,b,c)
605#define IDirectPlay2_GetSessionDesc(p,a,b) (p)->GetSessionDesc(a,b)
606#define IDirectPlay2_Initialize(p,a) (p)->Initialize(a)
607#define IDirectPlay2_Open(p,a,b) (p)->Open(a,b)
608#define IDirectPlay2_Receive(p,a,b,c,d,e) (p)->Receive(a,b,c,d,e)
609#define IDirectPlay2_Send(p,a,b,c,d,e) (p)->Send(a,b,c,d,e)
610#define IDirectPlay2_SetGroupData(p,a,b,c,d) (p)->SetGroupData(a,b,c,d)
611#define IDirectPlay2_SetGroupName(p,a,b,c) (p)->SetGroupName(a,b,c)
612#define IDirectPlay2_SetPlayerData(p,a,b,c,d) (p)->SetPlayerData(a,b,c,d)
613#define IDirectPlay2_SetPlayerName(p,a,b,c) (p)->SetPlayerName(a,b,c)
614#define IDirectPlay2_SetSessionDesc(p,a,b) (p)->SetSessionDesc(a,b)
615
616#endif
617
618/****************************************************************************
619 *
620 * IDirectPlay3 (and IDirectPlay3A) Interface
621 *
622 ****************************************************************************/
623
624#undef INTERFACE
625#define INTERFACE IDirectPlay3
626DECLARE_INTERFACE_( IDirectPlay3, IDirectPlay2 )
627{
628 /*** IUnknown methods ***/
629 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
630 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
631 STDMETHOD_(ULONG,Release) (THIS) PURE;
632 /*** IDirectPlay2 methods ***/
633 STDMETHOD(AddPlayerToGroup) (THIS_ DPID, DPID) PURE;
634 STDMETHOD(Close) (THIS) PURE;
635 STDMETHOD(CreateGroup) (THIS_ LPDPID,LPDPNAME,LPVOID,DWORD,DWORD) PURE;
636 STDMETHOD(CreatePlayer) (THIS_ LPDPID,LPDPNAME,HANDLE,LPVOID,DWORD,DWORD) PURE;
637 STDMETHOD(DeletePlayerFromGroup)(THIS_ DPID,DPID) PURE;
638 STDMETHOD(DestroyGroup) (THIS_ DPID) PURE;
639 STDMETHOD(DestroyPlayer) (THIS_ DPID) PURE;
640 STDMETHOD(EnumGroupPlayers) (THIS_ DPID,LPGUID,LPDPENUMPLAYERSCALLBACK2,LPVOID,DWORD) PURE;
641 STDMETHOD(EnumGroups) (THIS_ LPGUID,LPDPENUMPLAYERSCALLBACK2,LPVOID,DWORD) PURE;
642 STDMETHOD(EnumPlayers) (THIS_ LPGUID,LPDPENUMPLAYERSCALLBACK2,LPVOID,DWORD) PURE;
643 STDMETHOD(EnumSessions) (THIS_ LPDPSESSIONDESC2,DWORD,LPDPENUMSESSIONSCALLBACK2,LPVOID,DWORD) PURE;
644 STDMETHOD(GetCaps) (THIS_ LPDPCAPS,DWORD) PURE;
645 STDMETHOD(GetGroupData) (THIS_ DPID,LPVOID,LPDWORD,DWORD) PURE;
646 STDMETHOD(GetGroupName) (THIS_ DPID,LPVOID,LPDWORD) PURE;
647 STDMETHOD(GetMessageCount) (THIS_ DPID, LPDWORD) PURE;
648 STDMETHOD(GetPlayerAddress) (THIS_ DPID,LPVOID,LPDWORD) PURE;
649 STDMETHOD(GetPlayerCaps) (THIS_ DPID,LPDPCAPS,DWORD) PURE;
650 STDMETHOD(GetPlayerData) (THIS_ DPID,LPVOID,LPDWORD,DWORD) PURE;
651 STDMETHOD(GetPlayerName) (THIS_ DPID,LPVOID,LPDWORD) PURE;
652 STDMETHOD(GetSessionDesc) (THIS_ LPVOID,LPDWORD) PURE;
653 STDMETHOD(Initialize) (THIS_ LPGUID) PURE;
654 STDMETHOD(Open) (THIS_ LPDPSESSIONDESC2,DWORD) PURE;
655 STDMETHOD(Receive) (THIS_ LPDPID,LPDPID,DWORD,LPVOID,LPDWORD) PURE;
656 STDMETHOD(Send) (THIS_ DPID, DPID, DWORD, LPVOID, DWORD) PURE;
657 STDMETHOD(SetGroupData) (THIS_ DPID,LPVOID,DWORD,DWORD) PURE;
658 STDMETHOD(SetGroupName) (THIS_ DPID,LPDPNAME,DWORD) PURE;
659 STDMETHOD(SetPlayerData) (THIS_ DPID,LPVOID,DWORD,DWORD) PURE;
660 STDMETHOD(SetPlayerName) (THIS_ DPID,LPDPNAME,DWORD) PURE;
661 STDMETHOD(SetSessionDesc) (THIS_ LPDPSESSIONDESC2,DWORD) PURE;
662 /*** IDirectPlay3 methods ***/
663 STDMETHOD(AddGroupToGroup) (THIS_ DPID, DPID) PURE;
664 STDMETHOD(CreateGroupInGroup) (THIS_ DPID,LPDPID,LPDPNAME,LPVOID,DWORD,DWORD) PURE;
665 STDMETHOD(DeleteGroupFromGroup) (THIS_ DPID,DPID) PURE;
666 STDMETHOD(EnumConnections) (THIS_ LPCGUID,LPDPENUMCONNECTIONSCALLBACK,LPVOID,DWORD) PURE;
667 STDMETHOD(EnumGroupsInGroup) (THIS_ DPID,LPGUID,LPDPENUMPLAYERSCALLBACK2,LPVOID,DWORD) PURE;
668 STDMETHOD(GetGroupConnectionSettings)(THIS_ DWORD, DPID, LPVOID, LPDWORD) PURE;
669 STDMETHOD(InitializeConnection) (THIS_ LPVOID,DWORD) PURE;
670 STDMETHOD(SecureOpen) (THIS_ LPCDPSESSIONDESC2,DWORD,LPCDPSECURITYDESC,LPCDPCREDENTIALS) PURE;
671 STDMETHOD(SendChatMessage) (THIS_ DPID,DPID,DWORD,LPDPCHAT);
672 STDMETHOD(SetGroupConnectionSettings)(THIS_ DWORD,DPID,LPDPLCONNECTION) PURE;
673 STDMETHOD(StartSession) (THIS_ DWORD,DPID);
674 STDMETHOD(GetGroupFlags) (THIS_ DPID,LPDWORD);
675 STDMETHOD(GetGroupParent) (THIS_ DPID,LPDPID);
676 STDMETHOD(GetPlayerAccount) (THIS_ DPID, DWORD, LPVOID, LPDWORD) PURE;
677 STDMETHOD(GetPlayerFlags) (THIS_ DPID,LPDWORD);
678};
679
680/****************************************************************************
681 *
682 * IDirectPlay3 interface macros
683 *
684 ****************************************************************************/
685
686#if !defined(__cplusplus) || defined(CINTERFACE)
687
688#define IDirectPlay3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
689#define IDirectPlay3_AddRef(p) (p)->lpVtbl->AddRef(p)
690#define IDirectPlay3_Release(p) (p)->lpVtbl->Release(p)
691#define IDirectPlay3_AddPlayerToGroup(p,a,b) (p)->lpVtbl->AddPlayerToGroup(p,a,b)
692#define IDirectPlay3_Close(p) (p)->lpVtbl->Close(p)
693#define IDirectPlay3_CreateGroup(p,a,b,c,d,e) (p)->lpVtbl->CreateGroup(p,a,b,c,d,e)
694#define IDirectPlay3_CreatePlayer(p,a,b,c,d,e,f) (p)->lpVtbl->CreatePlayer(p,a,b,c,d,e,f)
695#define IDirectPlay3_DeletePlayerFromGroup(p,a,b) (p)->lpVtbl->DeletePlayerFromGroup(p,a,b)
696#define IDirectPlay3_DestroyGroup(p,a) (p)->lpVtbl->DestroyGroup(p,a)
697#define IDirectPlay3_DestroyPlayer(p,a) (p)->lpVtbl->DestroyPlayer(p,a)
698#define IDirectPlay3_EnumGroupPlayers(p,a,b,c,d,e) (p)->lpVtbl->EnumGroupPlayers(p,a,b,c,d,e)
699#define IDirectPlay3_EnumGroups(p,a,b,c,d) (p)->lpVtbl->EnumGroups(p,a,b,c,d)
700#define IDirectPlay3_EnumPlayers(p,a,b,c,d) (p)->lpVtbl->EnumPlayers(p,a,b,c,d)
701#define IDirectPlay3_EnumSessions(p,a,b,c,d,e) (p)->lpVtbl->EnumSessions(p,a,b,c,d,e)
702#define IDirectPlay3_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b)
703#define IDirectPlay3_GetMessageCount(p,a,b) (p)->lpVtbl->GetMessageCount(p,a,b)
704#define IDirectPlay3_GetGroupData(p,a,b,c,d) (p)->lpVtbl->GetGroupData(p,a,b,c,d)
705#define IDirectPlay3_GetGroupName(p,a,b,c) (p)->lpVtbl->GetGroupName(p,a,b,c)
706#define IDirectPlay3_GetPlayerAddress(p,a,b,c) (p)->lpVtbl->GetPlayerAddress(p,a,b,c)
707#define IDirectPlay3_GetPlayerCaps(p,a,b,c) (p)->lpVtbl->GetPlayerCaps(p,a,b,c)
708#define IDirectPlay3_GetPlayerData(p,a,b,c,d) (p)->lpVtbl->GetPlayerData(p,a,b,c,d)
709#define IDirectPlay3_GetPlayerName(p,a,b,c) (p)->lpVtbl->GetPlayerName(p,a,b,c)
710#define IDirectPlay3_GetSessionDesc(p,a,b) (p)->lpVtbl->GetSessionDesc(p,a,b)
711#define IDirectPlay3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
712#define IDirectPlay3_Open(p,a,b) (p)->lpVtbl->Open(p,a,b)
713#define IDirectPlay3_Receive(p,a,b,c,d,e) (p)->lpVtbl->Receive(p,a,b,c,d,e)
714#define IDirectPlay3_Send(p,a,b,c,d,e) (p)->lpVtbl->Send(p,a,b,c,d,e)
715#define IDirectPlay3_SetGroupData(p,a,b,c,d) (p)->lpVtbl->SetGroupData(p,a,b,c,d)
716#define IDirectPlay3_SetGroupName(p,a,b,c) (p)->lpVtbl->SetGroupName(p,a,b,c)
717#define IDirectPlay3_SetPlayerData(p,a,b,c,d) (p)->lpVtbl->SetPlayerData(p,a,b,c,d)
718#define IDirectPlay3_SetPlayerName(p,a,b,c) (p)->lpVtbl->SetPlayerName(p,a,b,c)
719#define IDirectPlay3_SetSessionDesc(p,a,b) (p)->lpVtbl->SetSessionDesc(p,a,b)
720#define IDirectPlay3_AddGroupToGroup(p,a,b) (p)->lpVtbl->AddGroupToGroup(p,a,b)
721#define IDirectPlay3_CreateGroupInGroup(p,a,b,c,d,e,f) (p)->lpVtbl->CreateGroupInGroup(p,a,b,c,d,e,f)
722#define IDirectPlay3_DeleteGroupFromGroup(p,a,b) (p)->lpVtbl->DeleteGroupFromGroup(p,a,b)
723#define IDirectPlay3_EnumConnections(p,a,b,c,d) (p)->lpVtbl->EnumConnections(p,a,b,c,d)
724#define IDirectPlay3_EnumGroupsInGroup(p,a,b,c,d,e) (p)->lpVtbl->EnumGroupsInGroup(p,a,b,c,d,e)
725#define IDirectPlay3_GetGroupConnectionSettings(p,a,b,c,d) (p)->lpVtbl->GetGroupConnectionSettings(p,a,b,c,d)
726#define IDirectPlay3_InitializeConnection(p,a,b) (p)->lpVtbl->InitializeConnection(p,a,b)
727#define IDirectPlay3_SecureOpen(p,a,b,c,d) (p)->lpVtbl->SecureOpen(p,a,b,c,d)
728#define IDirectPlay3_SendChatMessage(p,a,b,c,d) (p)->lpVtbl->SendChatMessage(p,a,b,c,d)
729#define IDirectPlay3_SetGroupConnectionSettings(p,a,b,c) (p)->lpVtbl->SetGroupConnectionSettings(p,a,b,c)
730#define IDirectPlay3_StartSession(p,a,b) (p)->lpVtbl->StartSession(p,a,b)
731#define IDirectPlay3_GetGroupFlags(p,a,b) (p)->lpVtbl->GetGroupFlags(p,a,b)
732#define IDirectPlay3_GetGroupParent(p,a,b) (p)->lpVtbl->GetGroupParent(p,a,b)
733#define IDirectPlay3_GetPlayerAccount(p,a,b,c,d) (p)->lpVtbl->GetPlayerAccount(p,a,b,c,d)
734#define IDirectPlay3_GetPlayerFlags(p,a,b) (p)->lpVtbl->GetPlayerFlags(p,a,b)
735
736#else /* C++ */
737
738#define IDirectPlay3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
739#define IDirectPlay3_AddRef(p) (p)->AddRef()
740#define IDirectPlay3_Release(p) (p)->Release()
741#define IDirectPlay3_AddPlayerToGroup(p,a,b) (p)->AddPlayerToGroup(a,b)
742#define IDirectPlay3_Close(p) (p)->Close()
743#define IDirectPlay3_CreateGroup(p,a,b,c,d,e) (p)->CreateGroup(a,b,c,d,e)
744#define IDirectPlay3_CreatePlayer(p,a,b,c,d,e,f) (p)->CreatePlayer(a,b,c,d,e,f)
745#define IDirectPlay3_DeletePlayerFromGroup(p,a,b) (p)->DeletePlayerFromGroup(a,b)
746#define IDirectPlay3_DestroyGroup(p,a) (p)->DestroyGroup(a)
747#define IDirectPlay3_DestroyPlayer(p,a) (p)->DestroyPlayer(a)
748#define IDirectPlay3_EnumGroupPlayers(p,a,b,c,d,e) (p)->EnumGroupPlayers(a,b,c,d,e)
749#define IDirectPlay3_EnumGroups(p,a,b,c,d) (p)->EnumGroups(a,b,c,d)
750#define IDirectPlay3_EnumPlayers(p,a,b,c,d) (p)->EnumPlayers(a,b,c,d)
751#define IDirectPlay3_EnumSessions(p,a,b,c,d,e) (p)->EnumSessions(a,b,c,d,e)
752#define IDirectPlay3_GetCaps(p,a,b) (p)->GetCaps(a,b)
753#define IDirectPlay3_GetMessageCount(p,a,b) (p)->GetMessageCount(a,b)
754#define IDirectPlay3_GetGroupData(p,a,b,c,d) (p)->GetGroupData(a,b,c,d)
755#define IDirectPlay3_GetGroupName(p,a,b,c) (p)->GetGroupName(a,b,c)
756#define IDirectPlay3_GetPlayerAddress(p,a,b,c) (p)->GetPlayerAddress(a,b,c)
757#define IDirectPlay3_GetPlayerCaps(p,a,b,c) (p)->GetPlayerCaps(a,b,c)
758#define IDirectPlay3_GetPlayerData(p,a,b,c,d) (p)->GetPlayerData(a,b,c,d)
759#define IDirectPlay3_GetPlayerName(p,a,b,c) (p)->GetPlayerName(a,b,c)
760#define IDirectPlay3_GetSessionDesc(p,a,b) (p)->GetSessionDesc(a,b)
761#define IDirectPlay3_Initialize(p,a) (p)->Initialize(a)
762#define IDirectPlay3_Open(p,a,b) (p)->Open(a,b)
763#define IDirectPlay3_Receive(p,a,b,c,d,e) (p)->Receive(a,b,c,d,e)
764#define IDirectPlay3_Send(p,a,b,c,d,e) (p)->Send(a,b,c,d,e)
765#define IDirectPlay3_SetGroupData(p,a,b,c,d) (p)->SetGroupData(a,b,c,d)
766#define IDirectPlay3_SetGroupName(p,a,b,c) (p)->SetGroupName(a,b,c)
767#define IDirectPlay3_SetPlayerData(p,a,b,c,d) (p)->SetPlayerData(a,b,c,d)
768#define IDirectPlay3_SetPlayerName(p,a,b,c) (p)->SetPlayerName(a,b,c)
769#define IDirectPlay3_SetSessionDesc(p,a,b) (p)->SetSessionDesc(a,b)
770#define IDirectPlay3_AddGroupToGroup(p,a,b) (p)->AddGroupToGroup(a,b)
771#define IDirectPlay3_CreateGroupInGroup(p,a,b,c,d,e,f) (p)->CreateGroupInGroup(a,b,c,d,e,f)
772#define IDirectPlay3_DeleteGroupFromGroup(p,a,b) (p)->DeleteGroupFromGroup(a,b)
773#define IDirectPlay3_EnumConnections(p,a,b,c,d) (p)->EnumConnections(a,b,c,d)
774#define IDirectPlay3_EnumGroupsInGroup(p,a,b,c,d,e) (p)->EnumGroupsInGroup(a,b,c,d,e)
775#define IDirectPlay3_GetGroupConnectionSettings(p,a,b,c,d) (p)->GetGroupConnectionSettings(a,b,c,d)
776#define IDirectPlay3_InitializeConnection(p,a,b) (p)->InitializeConnection(a,b)
777#define IDirectPlay3_SecureOpen(p,a,b,c,d) (p)->SecureOpen(a,b,c,d)
778#define IDirectPlay3_SendChatMessage(p,a,b,c,d) (p)->SendChatMessage(a,b,c,d)
779#define IDirectPlay3_SetGroupConnectionSettings(p,a,b,c) (p)->SetGroupConnectionSettings(a,b,c)
780#define IDirectPlay3_StartSession(p,a,b) (p)->StartSession(a,b)
781#define IDirectPlay3_GetGroupFlags(p,a,b) (p)->GetGroupFlags(a,b)
782#define IDirectPlay3_GetGroupParent(p,a,b) (p)->GetGroupParent(a,b)
783#define IDirectPlay3_GetPlayerAccount(p,a,b,c,d) (p)->GetPlayerAccount(a,b,c,d)
784#define IDirectPlay3_GetPlayerFlags(p,a,b) (p)->GetPlayerFlags(a,b)
785
786#endif
787
788/****************************************************************************
789 *
790 * EnumConnections API flags
791 *
792 ****************************************************************************/
793
797#define DPCONNECTION_DIRECTPLAY 0x00000001
798
802#define DPCONNECTION_DIRECTPLAYLOBBY 0x00000002
803
804
805/****************************************************************************
806 *
807 * EnumPlayers API flags
808 *
809 ****************************************************************************/
810
814#define DPENUMPLAYERS_ALL 0x00000000
815#define DPENUMGROUPS_ALL DPENUMPLAYERS_ALL
816
817
822#define DPENUMPLAYERS_LOCAL 0x00000008
823#define DPENUMGROUPS_LOCAL DPENUMPLAYERS_LOCAL
824
829#define DPENUMPLAYERS_REMOTE 0x00000010
830#define DPENUMGROUPS_REMOTE DPENUMPLAYERS_REMOTE
831
835#define DPENUMPLAYERS_GROUP 0x00000020
836
841#define DPENUMPLAYERS_SESSION 0x00000080
842#define DPENUMGROUPS_SESSION DPENUMPLAYERS_SESSION
843
847#define DPENUMPLAYERS_SERVERPLAYER 0x00000100
848
852#define DPENUMPLAYERS_SPECTATOR 0x00000200
853
857#define DPENUMGROUPS_SHORTCUT 0x00000400
858
862#define DPENUMGROUPS_STAGINGAREA 0x00000800
863
864/****************************************************************************
865 *
866 * CreatePlayer API flags
867 *
868 ****************************************************************************/
869
874#define DPPLAYER_SERVERPLAYER DPENUMPLAYERS_SERVERPLAYER
875
880#define DPPLAYER_SPECTATOR DPENUMPLAYERS_SPECTATOR
881
886#define DPPLAYER_LOCAL DPENUMPLAYERS_LOCAL
887
888/****************************************************************************
889 *
890 * CreateGroup API flags
891 *
892 ****************************************************************************/
893
894
899#define DPGROUP_STAGINGAREA DPENUMGROUPS_STAGINGAREA
900
905#define DPGROUP_LOCAL DPENUMGROUPS_LOCAL
906
907/****************************************************************************
908 *
909 * EnumSessions API flags
910 *
911 ****************************************************************************/
912
916#define DPENUMSESSIONS_AVAILABLE 0x00000001
917
921#define DPENUMSESSIONS_ALL 0x00000002
922
923
924
925
929 #define DPENUMSESSIONS_ASYNC 0x00000010
930
934 #define DPENUMSESSIONS_STOPASYNC 0x00000020
935
939 #define DPENUMSESSIONS_PASSWORDREQUIRED 0x00000040
940
945 #define DPENUMSESSIONS_RETURNSTATUS 0x00000080
946
947/****************************************************************************
948 *
949 * GetCaps and GetPlayerCaps API flags
950 *
951 ****************************************************************************/
952
957#define DPGETCAPS_GUARANTEED 0x00000001
958
959
960/****************************************************************************
961 *
962 * GetGroupData, GetPlayerData API flags
963 * Remote and local Group/Player data is maintained separately.
964 * Default is DPGET_REMOTE.
965 *
966 ****************************************************************************/
967
972#define DPGET_REMOTE 0x00000000
973
978#define DPGET_LOCAL 0x00000001
979
980
981/****************************************************************************
982 *
983 * Open API flags
984 *
985 ****************************************************************************/
986
990#define DPOPEN_JOIN 0x00000001
991
995#define DPOPEN_CREATE 0x00000002
996
1001 #define DPOPEN_RETURNSTATUS DPENUMSESSIONS_RETURNSTATUS
1002
1003/****************************************************************************
1004 *
1005 * DPLCONNECTION flags
1006 *
1007 ****************************************************************************/
1008
1013#define DPLCONNECTION_CREATESESSION DPOPEN_CREATE
1014
1019#define DPLCONNECTION_JOINSESSION DPOPEN_JOIN
1020
1021/****************************************************************************
1022 *
1023 * Receive API flags
1024 * Default is DPRECEIVE_ALL
1025 *
1026 ****************************************************************************/
1027
1031#define DPRECEIVE_ALL 0x00000001
1032
1036#define DPRECEIVE_TOPLAYER 0x00000002
1037
1041#define DPRECEIVE_FROMPLAYER 0x00000004
1042
1046#define DPRECEIVE_PEEK 0x00000008
1047
1048
1049/****************************************************************************
1050 *
1051 * Send API flags
1052 *
1053 ****************************************************************************/
1054
1059#define DPSEND_GUARANTEED 0x00000001
1060
1061
1065#define DPSEND_HIGHPRIORITY 0x00000002
1066
1070#define DPSEND_OPENSTREAM 0x00000008
1071
1075#define DPSEND_CLOSESTREAM 0x00000010
1076
1080#define DPSEND_SIGNED 0x00000020
1081
1085#define DPSEND_ENCRYPTED 0x00000040
1086
1087
1088/****************************************************************************
1089 *
1090 * SetGroupData, SetGroupName, SetPlayerData, SetPlayerName,
1091 * SetSessionDesc API flags.
1092 * Default is DPSET_REMOTE.
1093 *
1094 ****************************************************************************/
1095
1099#define DPSET_REMOTE 0x00000000
1100
1104#define DPSET_LOCAL 0x00000001
1105
1110#define DPSET_GUARANTEED 0x00000002
1111
1112
1113/****************************************************************************
1114 *
1115 * DirectPlay system messages and message data structures
1116 *
1117 * All system message come 'From' player DPID_SYSMSG. To determine what type
1118 * of message it is, cast the lpData from Receive to DPMSG_GENERIC and check
1119 * the dwType member against one of the following DPSYS_xxx constants. Once
1120 * a match is found, cast the lpData to the corresponding of the DPMSG_xxx
1121 * structures to access the data of the message.
1122 *
1123 ****************************************************************************/
1124
1130#define DPSYS_CREATEPLAYERORGROUP 0x0003
1131
1136#define DPSYS_DESTROYPLAYERORGROUP 0x0005
1137
1142#define DPSYS_ADDPLAYERTOGROUP 0x0007
1143
1148#define DPSYS_DELETEPLAYERFROMGROUP 0x0021
1149
1155#define DPSYS_SESSIONLOST 0x0031
1156
1162#define DPSYS_HOST 0x0101
1163
1170#define DPSYS_SETPLAYERORGROUPDATA 0x0102
1171
1178#define DPSYS_SETPLAYERORGROUPNAME 0x0103
1179
1184#define DPSYS_SETSESSIONDESC 0x0104
1185
1190#define DPSYS_ADDGROUPTOGROUP 0x0105
1191
1196#define DPSYS_DELETEGROUPFROMGROUP 0x0106
1197
1202#define DPSYS_SECUREMESSAGE 0x0107
1203
1208#define DPSYS_STARTSESSION 0x0108
1209
1214#define DPSYS_CHAT 0x0109
1215
1220#define DPPLAYERTYPE_GROUP 0x00000000
1221#define DPPLAYERTYPE_PLAYER 0x00000001
1222
1223
1227typedef struct
1228{
1231
1232/*
1233 * System message generated when a new player or group
1234 * created in the session with information about it.
1235 */
1236typedef struct
1237{
1245 // the following fields are only available when using
1246 // the IDirectPlay3 interface or greater
1250
1251/*
1252 * System message generated when a player or group is being
1253 * destroyed in the session with information about it.
1254 */
1255typedef struct
1256{
1264 // the following fields are only available when using
1265 // the IDirectPlay3 interface or greater
1270
1275typedef struct
1276{
1281
1288
1293typedef struct
1294{
1299
1306
1311typedef struct
1312{
1319
1324typedef struct
1325{
1331
1332/*
1333 * System message generated when session desc has changed
1334 */
1335typedef struct
1336{
1340
1348
1355
1359typedef struct
1360{
1367
1372typedef struct
1373{
1377
1381typedef struct
1382{
1390
1391/****************************************************************************
1392 *
1393 * DIRECTPLAY ERRORS
1394 *
1395 * Errors are represented by negative values and cannot be combined.
1396 *
1397 ****************************************************************************/
1398#define DP_OK S_OK
1399#define DPERR_ALREADYINITIALIZED MAKE_DPHRESULT( 5 )
1400#define DPERR_ACCESSDENIED MAKE_DPHRESULT( 10 )
1401#define DPERR_ACTIVEPLAYERS MAKE_DPHRESULT( 20 )
1402#define DPERR_BUFFERTOOSMALL MAKE_DPHRESULT( 30 )
1403#define DPERR_CANTADDPLAYER MAKE_DPHRESULT( 40 )
1404#define DPERR_CANTCREATEGROUP MAKE_DPHRESULT( 50 )
1405#define DPERR_CANTCREATEPLAYER MAKE_DPHRESULT( 60 )
1406#define DPERR_CANTCREATESESSION MAKE_DPHRESULT( 70 )
1407#define DPERR_CAPSNOTAVAILABLEYET MAKE_DPHRESULT( 80 )
1408#define DPERR_EXCEPTION MAKE_DPHRESULT( 90 )
1409#define DPERR_GENERIC E_FAIL
1410#define DPERR_INVALIDFLAGS MAKE_DPHRESULT( 120 )
1411#define DPERR_INVALIDOBJECT MAKE_DPHRESULT( 130 )
1412#define DPERR_INVALIDPARAM E_INVALIDARG
1413#define DPERR_INVALIDPARAMS DPERR_INVALIDPARAM
1414#define DPERR_INVALIDPLAYER MAKE_DPHRESULT( 150 )
1415#define DPERR_INVALIDGROUP MAKE_DPHRESULT( 155 )
1416#define DPERR_NOCAPS MAKE_DPHRESULT( 160 )
1417#define DPERR_NOCONNECTION MAKE_DPHRESULT( 170 )
1418#define DPERR_NOMEMORY E_OUTOFMEMORY
1419#define DPERR_OUTOFMEMORY DPERR_NOMEMORY
1420#define DPERR_NOMESSAGES MAKE_DPHRESULT( 190 )
1421#define DPERR_NONAMESERVERFOUND MAKE_DPHRESULT( 200 )
1422#define DPERR_NOPLAYERS MAKE_DPHRESULT( 210 )
1423#define DPERR_NOSESSIONS MAKE_DPHRESULT( 220 )
1424#define DPERR_PENDING E_PENDING
1425#define DPERR_SENDTOOBIG MAKE_DPHRESULT( 230 )
1426#define DPERR_TIMEOUT MAKE_DPHRESULT( 240 )
1427#define DPERR_UNAVAILABLE MAKE_DPHRESULT( 250 )
1428#define DPERR_UNSUPPORTED E_NOTIMPL
1429#define DPERR_BUSY MAKE_DPHRESULT( 270 )
1430#define DPERR_USERCANCEL MAKE_DPHRESULT( 280 )
1431#define DPERR_NOINTERFACE E_NOINTERFACE
1432#define DPERR_CANNOTCREATESERVER MAKE_DPHRESULT( 290 )
1433#define DPERR_PLAYERLOST MAKE_DPHRESULT( 300 )
1434#define DPERR_SESSIONLOST MAKE_DPHRESULT( 310 )
1435#define DPERR_UNINITIALIZED MAKE_DPHRESULT( 320 )
1436#define DPERR_NONEWPLAYERS MAKE_DPHRESULT( 330 )
1437#define DPERR_INVALIDPASSWORD MAKE_DPHRESULT( 340 )
1438#define DPERR_CONNECTING MAKE_DPHRESULT( 350 )
1439
1440
1441#define DPERR_BUFFERTOOLARGE MAKE_DPHRESULT( 1000 )
1442#define DPERR_CANTCREATEPROCESS MAKE_DPHRESULT( 1010 )
1443#define DPERR_APPNOTSTARTED MAKE_DPHRESULT( 1020 )
1444#define DPERR_INVALIDINTERFACE MAKE_DPHRESULT( 1030 )
1445#define DPERR_NOSERVICEPROVIDER MAKE_DPHRESULT( 1040 )
1446#define DPERR_UNKNOWNAPPLICATION MAKE_DPHRESULT( 1050 )
1447#define DPERR_NOTLOBBIED MAKE_DPHRESULT( 1070 )
1448#define DPERR_SERVICEPROVIDERLOADED MAKE_DPHRESULT( 1080 )
1449#define DPERR_ALREADYREGISTERED MAKE_DPHRESULT( 1090 )
1450#define DPERR_NOTREGISTERED MAKE_DPHRESULT( 1100 )
1451
1452//
1453// Security related errors
1454//
1455#define DPERR_AUTHENTICATIONFAILED MAKE_DPHRESULT( 2000 )
1456#define DPERR_CANTLOADSSPI MAKE_DPHRESULT( 2010 )
1457#define DPERR_ENCRYPTIONFAILED MAKE_DPHRESULT( 2020 )
1458#define DPERR_SIGNFAILED MAKE_DPHRESULT( 2030 )
1459#define DPERR_CANTLOADSECURITYPACKAGE MAKE_DPHRESULT( 2040 )
1460#define DPERR_ENCRYPTIONNOTSUPPORTED MAKE_DPHRESULT( 2050 )
1461#define DPERR_CANTLOADCAPI MAKE_DPHRESULT( 2060 )
1462#define DPERR_NOTLOGGEDIN MAKE_DPHRESULT( 2070 )
1463#define DPERR_LOGONDENIED MAKE_DPHRESULT( 2080 )
1464
1465
1466/****************************************************************************
1467 *
1468 * dplay 1.0 obsolete structures + interfaces
1469 * Included for compatibility only. New apps should
1470 * use IDirectPlay2
1471 *
1472 ****************************************************************************/
1473
1474// define this to ignore obsolete interfaces and constants
1475#ifndef IDIRECTPLAY2_OR_GREATER
1476
1477#define DPOPEN_OPENSESSION DPOPEN_JOIN
1478#define DPOPEN_CREATESESSION DPOPEN_CREATE
1479
1480#define DPENUMSESSIONS_PREVIOUS 0x00000004
1481
1482#define DPENUMPLAYERS_PREVIOUS 0x00000004
1483
1484#define DPSEND_GUARANTEE DPSEND_GUARANTEED
1485#define DPSEND_TRYONCE 0x00000004
1486
1487#define DPCAPS_NAMESERVICE 0x00000001
1488#define DPCAPS_NAMESERVER DPCAPS_ISHOST
1489#define DPCAPS_GUARANTEED 0x00000004
1490
1491#define DPLONGNAMELEN 52
1492#define DPSHORTNAMELEN 20
1493#define DPSESSIONNAMELEN 32
1494#define DPPASSWORDLEN 16
1495#define DPUSERRESERVED 16
1496
1497#define DPSYS_ADDPLAYER 0x0003
1498#define DPSYS_DELETEPLAYER 0x0005
1499
1500#define DPSYS_DELETEGROUP 0x0020
1501#define DPSYS_DELETEPLAYERFROMGRP 0x0021
1502#define DPSYS_CONNECT 0x484b
1503
1504typedef struct
1505{
1509 char szLongName[DPLONGNAMELEN];
1510 char szShortName[DPSHORTNAMELEN];
1513
1515
1516typedef struct
1517{
1522
1524typedef struct
1525{
1529
1531 DPID dpId,
1532 LPSTR lpFriendlyName,
1533 LPSTR lpFormalName,
1534 DWORD dwFlags,
1535 LPVOID lpContext );
1536
1537typedef struct
1538{
1545 char szSessionName[DPSESSIONNAMELEN];
1546 char szUserField[DPUSERRESERVED];
1548 char szPassword[DPPASSWORDLEN];
1555
1557 LPDPSESSIONDESC lpDPSessionDesc,
1559 LPDWORD lpdwTimeOut,
1560 DWORD dwFlags);
1561
1562/*
1563 * IDirectPlay
1564 */
1565#undef INTERFACE
1566#define INTERFACE IDirectPlay
1568{
1569 /*** IUnknown methods ***/
1570 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
1571 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
1572 STDMETHOD_(ULONG,Release) (THIS) PURE;
1573 /*** IDirectPlay methods ***/
1574 STDMETHOD(AddPlayerToGroup) (THIS_ DPID, DPID) PURE;
1575 STDMETHOD(Close) (THIS) PURE;
1576 STDMETHOD(CreatePlayer) (THIS_ LPDPID,LPSTR,LPSTR,LPHANDLE) PURE;
1577 STDMETHOD(CreateGroup) (THIS_ LPDPID,LPSTR,LPSTR) PURE;
1578 STDMETHOD(DeletePlayerFromGroup)(THIS_ DPID,DPID) PURE;
1579 STDMETHOD(DestroyPlayer) (THIS_ DPID) PURE;
1580 STDMETHOD(DestroyGroup) (THIS_ DPID) PURE;
1581 STDMETHOD(EnableNewPlayers) (THIS_ BOOL) PURE;
1582 STDMETHOD(EnumGroupPlayers) (THIS_ DPID, LPDPENUMPLAYERSCALLBACK,LPVOID,DWORD) PURE;
1583 STDMETHOD(EnumGroups) (THIS_ DWORD, LPDPENUMPLAYERSCALLBACK,LPVOID,DWORD) PURE;
1584 STDMETHOD(EnumPlayers) (THIS_ DWORD, LPDPENUMPLAYERSCALLBACK,LPVOID,DWORD) PURE;
1585 STDMETHOD(EnumSessions) (THIS_ LPDPSESSIONDESC,DWORD,LPDPENUMSESSIONSCALLBACK,LPVOID,DWORD) PURE;
1586 STDMETHOD(GetCaps) (THIS_ LPDPCAPS) PURE;
1587 STDMETHOD(GetMessageCount) (THIS_ DPID, LPDWORD) PURE;
1588 STDMETHOD(GetPlayerCaps) (THIS_ DPID, LPDPCAPS) PURE;
1589 STDMETHOD(GetPlayerName) (THIS_ DPID,LPSTR,LPDWORD,LPSTR,LPDWORD) PURE;
1590 STDMETHOD(Initialize) (THIS_ LPGUID) PURE;
1591 STDMETHOD(Open) (THIS_ LPDPSESSIONDESC) PURE;
1592 STDMETHOD(Receive) (THIS_ LPDPID,LPDPID,DWORD,LPVOID,LPDWORD) PURE;
1593 STDMETHOD(SaveSession) (THIS_ LPSTR) PURE;
1594 STDMETHOD(Send) (THIS_ DPID, DPID, DWORD, LPVOID, DWORD) PURE;
1595 STDMETHOD(SetPlayerName) (THIS_ DPID,LPSTR,LPSTR) PURE;
1596};
1597
1598/****************************************************************************
1599 *
1600 * IDirectPlay interface macros
1601 *
1602 ****************************************************************************/
1603
1604#if !defined(__cplusplus) || defined(CINTERFACE)
1605
1606#define IDirectPlay_AddPlayerToGroup(p,a,b) (p)->lpVtbl->AddPlayerToGroup(p,a,b)
1607#define IDirectPlay_Close(p) (p)->lpVtbl->Close(p)
1608#define IDirectPlay_CreateGroup(p,a,b,c) (p)->lpVtbl->CreateGroup(p,a,b,c)
1609#define IDirectPlay_CreatePlayer(p,a,b,c,d) (p)->lpVtbl->CreatePlayer(p,a,b,c,d)
1610#define IDirectPlay_DeletePlayerFromGroup(p,a,b) (p)->lpVtbl->DeletePlayerFromGroup(p,a,b)
1611#define IDirectPlay_DestroyGroup(p,a) (p)->lpVtbl->DestroyGroup(p,a)
1612#define IDirectPlay_DestroyPlayer(p,a) (p)->lpVtbl->DestroyPlayer(p,a)
1613#define IDirectPlay_EnableNewPlayers(p,a) (p)->lpVtbl->EnableNewPlayers(p,a)
1614#define IDirectPlay_EnumGroupPlayers(p,a,b,c,d) (p)->lpVtbl->EnumGroupPlayers(p,a,b,c,d)
1615#define IDirectPlay_EnumGroups(p,a,b,c,d) (p)->lpVtbl->EnumGroups(p,a,b,c,d)
1616#define IDirectPlay_EnumPlayers(p,a,b,c,d) (p)->lpVtbl->EnumPlayers(p,a,b,c,d)
1617#define IDirectPlay_EnumSessions(p,a,b,c,d,e) (p)->lpVtbl->EnumSessions(p,a,b,c,d,e)
1618#define IDirectPlay_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
1619#define IDirectPlay_GetMessageCount(p,a,b) (p)->lpVtbl->GetMessageCount(p,a,b)
1620#define IDirectPlay_GetPlayerCaps(p,a,b) (p)->lpVtbl->GetPlayerCaps(p,a,b)
1621#define IDirectPlay_GetPlayerName(p,a,b,c,d,e) (p)->lpVtbl->GetPlayerName(p,a,b,c,d,e)
1622#define IDirectPlay_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
1623#define IDirectPlay_Open(p,a) (p)->lpVtbl->Open(p,a)
1624#define IDirectPlay_Receive(p,a,b,c,d,e) (p)->lpVtbl->Receive(p,a,b,c,d,e)
1625#define IDirectPlay_SaveSession(p,a) (p)->lpVtbl->SaveSession(p,a)
1626#define IDirectPlay_Send(p,a,b,c,d,e) (p)->lpVtbl->Send(p,a,b,c,d,e)
1627#define IDirectPlay_SetPlayerName(p,a,b,c) (p)->lpVtbl->SetPlayerName(p,a,b,c)
1628
1629#else /* C++ */
1630
1631#define IDirectPlay_AddPlayerToGroup(p,a,b) (p)->AddPlayerToGroup(a,b)
1632#define IDirectPlay_Close(p) (p)->Close()
1633#define IDirectPlay_CreateGroup(p,a,b,c) (p)->CreateGroup(a,b,c)
1634#define IDirectPlay_CreatePlayer(p,a,b,c,d) (p)->CreatePlayer(a,b,c,d)
1635#define IDirectPlay_DeletePlayerFromGroup(p,a,b) (p)->DeletePlayerFromGroup(a,b)
1636#define IDirectPlay_DestroyGroup(p,a) (p)->DestroyGroup(a)
1637#define IDirectPlay_DestroyPlayer(p,a) (p)->DestroyPlayer(a)
1638#define IDirectPlay_EnableNewPlayers(p,a) (p)->EnableNewPlayers(a)
1639#define IDirectPlay_EnumGroupPlayers(p,a,b,c,d) (p)->EnumGroupPlayers(a,b,c,d)
1640#define IDirectPlay_EnumGroups(p,a,b,c,d) (p)->EnumGroups(a,b,c,d)
1641#define IDirectPlay_EnumPlayers(p,a,b,c,d) (p)->EnumPlayers(a,b,c,d)
1642#define IDirectPlay_EnumSessions(p,a,b,c,d,e) (p)->EnumSessions(a,b,c,d,e)
1643#define IDirectPlay_GetCaps(p,a) (p)->GetCaps(a)
1644#define IDirectPlay_GetMessageCount(p,a,b) (p)->GetMessageCount(a,b)
1645#define IDirectPlay_GetPlayerCaps(p,a,b) (p)->GetPlayerCaps(a,b)
1646#define IDirectPlay_GetPlayerName(p,a,b,c,d,e) (p)->GetPlayerName(a,b,c,d,e)
1647#define IDirectPlay_Initialize(p,a) (p)->Initialize(a)
1648#define IDirectPlay_Open(p,a) (p)->Open(a)
1649#define IDirectPlay_Receive(p,a,b,c,d,e) (p)->Receive(a,b,c,d,e)
1650#define IDirectPlay_SaveSession(p,a) (p)->SaveSession(a)
1651#define IDirectPlay_Send(p,a,b,c,d,e) (p)->Send(a,b,c,d,e)
1652#define IDirectPlay_SetPlayerName(p,a,b,c) (p)->SetPlayerName(a,b,c)
1653
1654#endif
1655
1656DEFINE_GUID(IID_IDirectPlay, 0x5454e9a0, 0xdb65, 0x11ce, 0x92, 0x1c, 0x00, 0xaa, 0x00, 0x6c, 0x49, 0x72);
1657
1658#endif // IDIRECTPLAY2_OR_GREATER
1659
1660/****************************************************************************
1661 *
1662 * IDirectPlay macros (included regardless of IDIRECTPLAY2_OR_GREATER flag)
1663 *
1664 ****************************************************************************/
1665
1666#if !defined(__cplusplus) || defined(CINTERFACE)
1667
1668#define IDirectPlay_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1669#define IDirectPlay_AddRef(p) (p)->lpVtbl->AddRef(p)
1670#define IDirectPlay_Release(p) (p)->lpVtbl->Release(p)
1671
1672#else
1673
1674#define IDirectPlay_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1675#define IDirectPlay_AddRef(p) (p)->AddRef()
1676#define IDirectPlay_Release(p) (p)->Release()
1677
1678#endif // IDirectPlay interface macros
1679
1680#ifdef __cplusplus
1681};
1682#endif
1683
1684#endif
LPSTR LPSTR LPVOID
Definition: d3dcaps.h:213
#define IUnknown
Definition: ddraw.h:28
typedef DWORD(FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper
long HRESULT
Definition: ddraw.h:115
const GUID FAR * LPCGUID
Definition: dplay.h:369
#define DPSESSIONNAMELEN
Definition: dplay.h:1493
struct DPMSG_SECUREMESSAGE * LPDPMSG_SECUREMESSAGE
LPDWORD DWORD dwFlags
Definition: dplay.h:417
typedef BOOL(FAR PASCAL *LPDPENUMSESSIONSCALLBACK2)(LPCDPSESSIONDESC2 lpThisSD
const DPACCOUNTDESC FAR * LPCDPACCOUNTDESC
Definition: dplay.h:364
DPMSG_GENERIC DPMSG_SESSIONLOST
Definition: dplay.h:1353
struct DPMSG_CREATEPLAYERORGROUP * LPDPMSG_CREATEPLAYERORGROUP
struct DPSECURITYDESC * LPDPSECURITYDESC
struct IDirectPlay3 FAR * LPDIRECTPLAY3
Definition: dplay.h:77
struct DPMSG_ADDPLAYERTOGROUP * LPDPMSG_ADDPLAYERTOGROUP
HRESULT WINAPI DirectPlayCreate(LPGUID lpGUID, LPDIRECTPLAY *lplpDP, IUnknown *pUnk)
HRESULT WINAPI DirectPlayEnumerateW(LPDPENUMDPCALLBACK, LPVOID)
struct DPSESSIONDESC * LPDPSESSIONDESC
struct DPCREDENTIALS * LPDPCREDENTIALS
struct DPACCOUNTDESC * LPDPACCOUNTDESC
DEFINE_GUID(IID_IDirectPlay2, 0x2b74f7c0, 0x9154, 0x11cf, 0xa9, 0xcd, 0x0, 0xaa, 0x0, 0x68, 0x86, 0xe3)
LPDWORD DWORD LPVOID lpContext
Definition: dplay.h:418
struct DPMSG_CHAT * LPDPMSG_CHAT
const DPSESSIONDESC2 FAR * LPCDPSESSIONDESC2
Definition: dplay.h:204
struct DPMSG_SETSESSIONDESC * LPDPMSG_SETSESSIONDESC
struct DPCAPS * LPDPCAPS
DPMSG_ADDPLAYER DPMSG_ADDGROUP
Definition: dplay.h:1514
struct DPMSG_ADDGROUPTOGROUP * LPDPMSG_ADDGROUPTOGROUP
LPDWORD lpdwTimeOut
Definition: dplay.h:416
DWORD dwPlayerType
Definition: dplay.h:438
HRESULT WINAPI DirectPlayEnumerateA(LPDPENUMDPCALLBACKA, LPVOID)
struct DPNAME * LPDPNAME
struct DPMSG_STARTSESSION * LPDPMSG_STARTSESSION
struct IDirectPlay FAR * LPDIRECTPLAY
Definition: dplay.h:68
DPMSG_SESSIONLOST FAR * LPDPMSG_SESSIONLOST
Definition: dplay.h:1354
const DPLCONNECTION FAR * LPCDPLCONNECTION
Definition: dplay.h:389
DPMSG_GENERIC DPMSG_HOST
Definition: dplay.h:1346
DPMSG_DELETEPLAYERFROMGROUP FAR * LPDPMSG_DELETEPLAYERFROMGROUP
Definition: dplay.h:1287
LPVOID lpConnection
Definition: dplay.h:473
struct IDirectPlay2 FAR * LPDIRECTPLAY2
Definition: dplay.h:73
struct DPLCONNECTION * LPDPLCONNECTION
const DPSECURITYDESC FAR * LPCDPSECURITYDESC
Definition: dplay.h:348
struct DPMSG_GENERIC * LPDPMSG_GENERIC
struct IDirectPlay3 FAR * LPDIRECTPLAY3A
Definition: dplay.h:78
struct DPSESSIONDESC2 * LPDPSESSIONDESC2
DPMSG_HOST FAR * LPDPMSG_HOST
Definition: dplay.h:1347
#define DPLONGNAMELEN
Definition: dplay.h:1491
DWORD LPCDPNAME lpName
Definition: dplay.h:439
LPWSTR DWORD dwMajorVersion
Definition: dplay.h:452
BOOL(PASCAL * LPDPENUMPLAYERSCALLBACK)(DPID dpId, LPSTR lpFriendlyName, LPSTR lpFormalName, DWORD dwFlags, LPVOID lpContext)
Definition: dplay.h:1530
DWORD DPID
Definition: dplay.h:85
struct DPMSG_SETPLAYERORGROUPNAME * LPDPMSG_SETPLAYERORGROUPNAME
const DPCREDENTIALS FAR * LPCDPCREDENTIALS
Definition: dplay.h:324
DPMSG_ADDGROUPTOGROUP DPMSG_DELETEGROUPFROMGROUP
Definition: dplay.h:1304
struct IDirectPlay3 IDirectPlay3A
Definition: dplay.h:79
#define DPUSERRESERVED
Definition: dplay.h:1495
struct DPMSG_DESTROYPLAYERORGROUP * LPDPMSG_DESTROYPLAYERORGROUP
BOOL(PASCAL * LPDPENUMSESSIONSCALLBACK)(LPDPSESSIONDESC lpDPSessionDesc, LPVOID lpContext, LPDWORD lpdwTimeOut, DWORD dwFlags)
Definition: dplay.h:1556
#define DPPASSWORDLEN
Definition: dplay.h:1494
LPWSTR DWORD DWORD dwMinorVersion
Definition: dplay.h:453
LPWSTR lpSPName
Definition: dplay.h:451
struct DPMSG_SETPLAYERORGROUPDATA * LPDPMSG_SETPLAYERORGROUPDATA
struct IDirectPlay2 IDirectPlay2A
Definition: dplay.h:75
DPMSG_GROUPADD DPMSG_GROUPDELETE
Definition: dplay.h:1523
DECLARE_INTERFACE_(IDirectPlay2, IUnknown)
Definition: dplay.h:502
DPMSG_ADDPLAYERTOGROUP DPMSG_DELETEPLAYERFROMGROUP
Definition: dplay.h:1286
DPMSG_DELETEGROUPFROMGROUP FAR * LPDPMSG_DELETEGROUPFROMGROUP
Definition: dplay.h:1305
const DPNAME FAR * LPCDPNAME
Definition: dplay.h:298
struct DPCHAT * LPDPCHAT
struct IDirectPlay2 FAR * LPDIRECTPLAY2A
Definition: dplay.h:74
DWORD FAR * LPDPID
Definition: dplay.h:85
LPVOID DWORD dwConnectionSize
Definition: dplay.h:474
#define DPSHORTNAMELEN
Definition: dplay.h:1492
Definition: dplay.h:354
LPSTR lpszAccountIDA
Account identifier (ANSI)
Definition: dplay.h:360
DWORD dwSize
Size of structure.
Definition: dplay.h:355
LPWSTR lpszAccountID
Account identifier (Unicode)
Definition: dplay.h:359
DWORD dwFlags
Not used. Must be zero.
Definition: dplay.h:356
Definition: dplay.h:111
DWORD dwHeaderLength
Definition: dplay.h:121
DWORD dwMaxPlayers
Maximum players/groups (local + remote)
Definition: dplay.h:116
DWORD dwSize
Size of structure, in bytes.
Definition: dplay.h:112
DWORD dwMaxBufferSize
Maximum message size, in bytes, for this service provider.
Definition: dplay.h:114
DWORD dwMaxQueueSize
Obsolete.
Definition: dplay.h:115
DWORD dwTimeout
Definition: dplay.h:123
DWORD dwHundredBaud
Definition: dplay.h:117
DWORD dwMaxLocalPlayers
Maximum # of locally created players allowed.
Definition: dplay.h:120
DWORD dwLatency
Estimated latency; 0 = unknown.
Definition: dplay.h:119
DWORD dwFlags
DPCAPS_xxx flags.
Definition: dplay.h:113
Definition: dplay.h:395
LPSTR lpszMessageA
ANSI.
Definition: dplay.h:401
DWORD dwFlags
Definition: dplay.h:397
DWORD dwSize
Definition: dplay.h:396
LPWSTR lpszMessage
< Message string
Definition: dplay.h:400
Definition: dplay.h:304
LPWSTR lpszDomain
< Domain name of the account
Definition: dplay.h:319
DWORD dwSize
Size of structure.
Definition: dplay.h:305
LPWSTR lpszPassword
< Password of the account
Definition: dplay.h:314
LPSTR lpszUsernameA
ANSI.
Definition: dplay.h:310
DWORD dwFlags
Not used. Must be zero.
Definition: dplay.h:306
LPSTR lpszDomainA
ANSI.
Definition: dplay.h:320
LPSTR lpszPasswordA
ANSI.
Definition: dplay.h:315
LPWSTR lpszUsername
< User name of the account
Definition: dplay.h:309
Definition: dplay.h:376
GUID guidSP
GUID of the DPlay SP to use.
Definition: dplay.h:381
DWORD dwFlags
Flags specific to this structure.
Definition: dplay.h:378
DWORD dwSize
Size of this structure.
Definition: dplay.h:377
LPDPNAME lpPlayerName
Pointer to Player name structure.
Definition: dplay.h:380
DWORD dwAddressSize
Size of address data.
Definition: dplay.h:383
LPVOID lpAddress
Address for service provider.
Definition: dplay.h:382
LPDPSESSIONDESC2 lpSessionDesc
Pointer to session desc to use on connect.
Definition: dplay.h:379
Definition: dplay.h:1294
DWORD dwType
Message type.
Definition: dplay.h:1295
DPID dpIdParentGroup
group ID being added to
Definition: dplay.h:1296
DPID dpIdGroup
group ID being added
Definition: dplay.h:1297
Definition: dplay.h:1276
DPID dpIdPlayer
player ID being added
Definition: dplay.h:1279
DPID dpIdGroup
group ID being added to
Definition: dplay.h:1278
DWORD dwType
Message type.
Definition: dplay.h:1277
Definition: dplay.h:1505
DPID dpId
Definition: dplay.h:1508
DWORD dwPlayerType
Definition: dplay.h:1507
DWORD dwCurrentPlayers
Definition: dplay.h:1511
DWORD dwType
Definition: dplay.h:1506
Definition: dplay.h:1382
DPID idToGroup
ID of the To Group.
Definition: dplay.h:1387
DWORD dwType
Message type.
Definition: dplay.h:1383
DWORD dwFlags
Message flags.
Definition: dplay.h:1384
LPDPCHAT lpChat
Pointer to a structure containing the chat message.
Definition: dplay.h:1388
DPID idFromPlayer
ID of the Sending Player.
Definition: dplay.h:1385
DPID idToPlayer
ID of the To Player.
Definition: dplay.h:1386
Definition: dplay.h:1237
DWORD dwCurrentPlayers
current # players & groups in session
Definition: dplay.h:1241
DWORD dwType
Message type.
Definition: dplay.h:1238
DWORD dwDataSize
size of remote data
Definition: dplay.h:1243
DPID dpIdParent
id of parent group
Definition: dplay.h:1247
DPNAME dpnName
structure with name info
Definition: dplay.h:1244
DPID dpId
ID of the player or group.
Definition: dplay.h:1240
DWORD dwPlayerType
Is it a player or group.
Definition: dplay.h:1239
DWORD dwFlags
player or group flags
Definition: dplay.h:1248
LPVOID lpData
pointer to remote data
Definition: dplay.h:1242
Definition: dplay.h:1525
DPID dpId
Definition: dplay.h:1527
DWORD dwType
Definition: dplay.h:1526
Definition: dplay.h:1256
DWORD dwType
Message type.
Definition: dplay.h:1257
DPNAME dpnName
structure with name info
Definition: dplay.h:1266
DWORD dwLocalDataSize
sizeof local data
Definition: dplay.h:1261
LPVOID lpLocalData
copy of players local data
Definition: dplay.h:1260
DWORD dwRemoteDataSize
sizeof remote data
Definition: dplay.h:1263
DWORD dwFlags
player or group flags
Definition: dplay.h:1268
DPID dpIdParent
id of parent group
Definition: dplay.h:1267
LPVOID lpRemoteData
copy of players remote data
Definition: dplay.h:1262
DPID dpId
player ID being deleted
Definition: dplay.h:1259
DWORD dwPlayerType
Is it a player or group.
Definition: dplay.h:1258
Definition: dplay.h:1228
DWORD dwType
Message type.
Definition: dplay.h:1229
Definition: dplay.h:1517
DPID dpIdPlayer
Definition: dplay.h:1520
DWORD dwType
Definition: dplay.h:1518
DPID dpIdGroup
Definition: dplay.h:1519
Definition: dplay.h:1360
DPID dpIdFrom
ID of Sending Player.
Definition: dplay.h:1363
DWORD dwFlags
Signed/Encrypted.
Definition: dplay.h:1362
DWORD dwType
Message Type.
Definition: dplay.h:1361
DWORD dwDataSize
Size of player message.
Definition: dplay.h:1365
LPVOID lpData
Player message.
Definition: dplay.h:1364
Definition: dplay.h:1312
DWORD dwType
Message type.
Definition: dplay.h:1313
DWORD dwDataSize
size of remote data
Definition: dplay.h:1317
DPID dpId
ID of player or group.
Definition: dplay.h:1315
DWORD dwPlayerType
Is it a player or group.
Definition: dplay.h:1314
LPVOID lpData
pointer to remote data
Definition: dplay.h:1316
Definition: dplay.h:1325
DWORD dwPlayerType
Is it a player or group.
Definition: dplay.h:1327
DWORD dwType
Message type.
Definition: dplay.h:1326
DPID dpId
ID of player or group.
Definition: dplay.h:1328
DPNAME dpnName
structure with new name info
Definition: dplay.h:1329
Definition: dplay.h:1336
DPSESSIONDESC2 dpDesc
Session desc.
Definition: dplay.h:1338
DWORD dwType
Message type.
Definition: dplay.h:1337
Definition: dplay.h:1373
DWORD dwType
Message type.
Definition: dplay.h:1374
LPDPLCONNECTION lpConn
DPLCONNECTION structure.
Definition: dplay.h:1375
Definition: dplay.h:279
LPWSTR lpszLongName
< The long or formal name
Definition: dplay.h:289
LPSTR lpszShortNameA
ANSI.
Definition: dplay.h:285
DWORD dwSize
Size of structure.
Definition: dplay.h:280
LPSTR lpszLongNameA
ANSI.
Definition: dplay.h:290
DWORD dwFlags
Not used. Must be zero.
Definition: dplay.h:281
LPWSTR lpszShortName
< The short or friendly name
Definition: dplay.h:284
Definition: dplay.h:331
DWORD dwSize
Size of structure.
Definition: dplay.h:332
DWORD dwEncryptionAlgorithm
Encryption Algorithm type.
Definition: dplay.h:345
LPSTR lpszSSPIProviderA
SSPI provider name (ANSI)
Definition: dplay.h:337
DWORD dwFlags
Not used. Must be zero.
Definition: dplay.h:333
LPWSTR lpszCAPIProvider
CAPI provider name (Unicode)
Definition: dplay.h:341
LPSTR lpszCAPIProviderA
CAPI provider name (ANSI)
Definition: dplay.h:342
LPWSTR lpszSSPIProvider
SSPI provider name (Unicode)
Definition: dplay.h:336
DWORD dwCAPIProviderType
Crypto Service Provider type.
Definition: dplay.h:344
Definition: dplay.h:174
DWORD dwUser4
Definition: dplay.h:197
LPSTR lpszSessionNameA
ANSI.
Definition: dplay.h:185
LPWSTR lpszPassword
< Password of the session (optional)
Definition: dplay.h:189
LPWSTR lpszSessionName
< Name of the session
Definition: dplay.h:184
GUID guidInstance
ID for the session instance.
Definition: dplay.h:177
DWORD dwReserved2
Definition: dplay.h:193
LPSTR lpszPasswordA
ANSI.
Definition: dplay.h:190
DWORD dwSize
Size of structure.
Definition: dplay.h:175
DWORD dwUser2
Definition: dplay.h:195
DWORD dwUser1
For use by the application.
Definition: dplay.h:194
DWORD dwCurrentPlayers
Current # players in session (read only)
Definition: dplay.h:181
DWORD dwMaxPlayers
Maximum # players allowed in session.
Definition: dplay.h:180
DWORD dwReserved1
Reserved for future MS use.
Definition: dplay.h:192
DWORD dwUser3
Definition: dplay.h:196
GUID guidApplication
Definition: dplay.h:178
DWORD dwFlags
DPSESSION_xxx flags.
Definition: dplay.h:176
Definition: dplay.h:1538
DWORD dwReserved2
Definition: dplay.h:1549
DWORD dwSession
Definition: dplay.h:1541
DWORD dwReserved1
Definition: dplay.h:1547
DWORD dwUser3
Definition: dplay.h:1552
DWORD dwUser4
Definition: dplay.h:1553
GUID guidSession
Definition: dplay.h:1540
DWORD dwUser2
Definition: dplay.h:1551
DWORD dwSize
Definition: dplay.h:1539
DWORD dwUser1
Definition: dplay.h:1550
DWORD dwCurrentPlayers
Definition: dplay.h:1543
DWORD dwFlags
Definition: dplay.h:1544
DWORD dwMaxPlayers
Definition: dplay.h:1542