10#ifndef __DPLAY_INCLUDED__
11#define __DPLAY_INCLUDED__
16#define MAKE_DPHRESULT( code ) MAKE_HRESULT( 1, _FACDP, code )
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);
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);
32DEFINE_GUID(CLSID_DirectPlay,0xd1eb6d20, 0x8923, 0x11d0, 0x9d, 0x97, 0x0, 0xa0, 0xc9, 0xa, 0x43, 0xcb);
420x685bc400, 0x9d2c, 0x11cf, 0xa9, 0xcd, 0x0, 0xaa, 0x0, 0x68, 0x86, 0xe3);
470x36E95EE0, 0x8577, 0x11cf, 0x96, 0xc, 0x0, 0x80, 0xc7, 0x53, 0x4e, 0x82);
520xf1d6860, 0x88d9, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
570x44eaa760, 0xcb68, 0x11cf, 0x9c, 0x4e, 0x0, 0xa0, 0xc9, 0x5, 0x42, 0x5e);
67#ifndef IDIRECTPLAY2_OR_GREATER
95#define DPID_ALLPLAYERS 0
100#define DPID_SERVERPLAYER 1
105#define DPID_UNKNOWN 0xFFFFFFFF
134#define DPCAPS_ISHOST 0x00000002
140#define DPCAPS_GROUPOPTIMIZED 0x00000008
146#define DPCAPS_KEEPALIVEOPTIMIZED 0x00000010
152#define DPCAPS_GUARANTEEDOPTIMIZED 0x00000020
157#define DPCAPS_GUARANTEEDSUPPORTED 0x00000040
162#define DPCAPS_SIGNINGSUPPORTED 0x00000080
167#define DPCAPS_ENCRYPTIONSUPPORTED 0x00000100
211#define DPSESSION_NEWPLAYERSDISABLED 0x00000001
219#define DPSESSION_MIGRATEHOST 0x00000004
226#define DPSESSION_NOMESSAGEID 0x00000008
234#define DPSESSION_JOINDISABLED 0x00000020
240#define DPSESSION_KEEPALIVE 0x00000040
246#define DPSESSION_NODATAMESSAGES 0x00000080
252#define DPSESSION_SECURESERVER 0x00000100
258#define DPSESSION_PRIVATE 0x00000200
263#define DPSESSION_PASSWORDREQUIRED 0x00000400
268#define DPSESSION_MULTICASTSERVER 0x00000800
274#define DPSESSION_CLIENTSERVER 0x00001000
425typedef BOOL (FAR PASCAL * LPDPENUMSESSIONSCALLBACK2)(
439#define DPESC_TIMEDOUT 0x00000001
447typedef BOOL (FAR PASCAL *LPDPENUMPLAYERSCALLBACK2)(
460typedef BOOL (FAR PASCAL * LPDPENUMDPCALLBACK)(
472typedef BOOL (FAR PASCAL * LPDPENUMDPCALLBACKA)(
482typedef BOOL (FAR PASCAL * LPDPENUMCONNECTIONSCALLBACK)(
496#define DirectPlayEnumerate DirectPlayEnumerateW
498#define DirectPlayEnumerate DirectPlayEnumerateA
512#define INTERFACE IDirectPlay2
516 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID * ppvObj) PURE;
517 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
518 STDMETHOD_(ULONG,Release) (THIS) PURE;
520 STDMETHOD(AddPlayerToGroup) (THIS_
DPID,
DPID) PURE;
521 STDMETHOD(Close) (THIS) PURE;
524 STDMETHOD(DeletePlayerFromGroup)(THIS_
DPID,
DPID) PURE;
525 STDMETHOD(DestroyGroup) (THIS_
DPID) PURE;
526 STDMETHOD(DestroyPlayer) (THIS_
DPID) PURE;
527 STDMETHOD(EnumGroupPlayers) (THIS_
DPID,LPGUID,LPDPENUMPLAYERSCALLBACK2,
LPVOID,
DWORD) PURE;
528 STDMETHOD(EnumGroups) (THIS_ LPGUID,LPDPENUMPLAYERSCALLBACK2,
LPVOID,
DWORD) PURE;
529 STDMETHOD(EnumPlayers) (THIS_ LPGUID,LPDPENUMPLAYERSCALLBACK2,
LPVOID,
DWORD) PURE;
533 STDMETHOD(GetGroupName) (THIS_
DPID,
LPVOID,LPDWORD) PURE;
534 STDMETHOD(GetMessageCount) (THIS_
DPID, LPDWORD) PURE;
535 STDMETHOD(GetPlayerAddress) (THIS_
DPID,
LPVOID,LPDWORD) PURE;
538 STDMETHOD(GetPlayerName) (THIS_
DPID,
LPVOID,LPDWORD) PURE;
539 STDMETHOD(GetSessionDesc) (THIS_
LPVOID,LPDWORD) PURE;
540 STDMETHOD(Initialize) (THIS_ LPGUID) PURE;
557#if !defined(__cplusplus) || defined(CINTERFACE)
559#define IDirectPlay2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
560#define IDirectPlay2_AddRef(p) (p)->lpVtbl->AddRef(p)
561#define IDirectPlay2_Release(p) (p)->lpVtbl->Release(p)
562#define IDirectPlay2_AddPlayerToGroup(p,a,b) (p)->lpVtbl->AddPlayerToGroup(p,a,b)
563#define IDirectPlay2_Close(p) (p)->lpVtbl->Close(p)
564#define IDirectPlay2_CreateGroup(p,a,b,c,d,e) (p)->lpVtbl->CreateGroup(p,a,b,c,d,e)
565#define IDirectPlay2_CreatePlayer(p,a,b,c,d,e,f) (p)->lpVtbl->CreatePlayer(p,a,b,c,d,e,f)
566#define IDirectPlay2_DeletePlayerFromGroup(p,a,b) (p)->lpVtbl->DeletePlayerFromGroup(p,a,b)
567#define IDirectPlay2_DestroyGroup(p,a) (p)->lpVtbl->DestroyGroup(p,a)
568#define IDirectPlay2_DestroyPlayer(p,a) (p)->lpVtbl->DestroyPlayer(p,a)
569#define IDirectPlay2_EnumGroupPlayers(p,a,b,c,d,e) (p)->lpVtbl->EnumGroupPlayers(p,a,b,c,d,e)
570#define IDirectPlay2_EnumGroups(p,a,b,c,d) (p)->lpVtbl->EnumGroups(p,a,b,c,d)
571#define IDirectPlay2_EnumPlayers(p,a,b,c,d) (p)->lpVtbl->EnumPlayers(p,a,b,c,d)
572#define IDirectPlay2_EnumSessions(p,a,b,c,d,e) (p)->lpVtbl->EnumSessions(p,a,b,c,d,e)
573#define IDirectPlay2_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b)
574#define IDirectPlay2_GetMessageCount(p,a,b) (p)->lpVtbl->GetMessageCount(p,a,b)
575#define IDirectPlay2_GetGroupData(p,a,b,c,d) (p)->lpVtbl->GetGroupData(p,a,b,c,d)
576#define IDirectPlay2_GetGroupName(p,a,b,c) (p)->lpVtbl->GetGroupName(p,a,b,c)
577#define IDirectPlay2_GetPlayerAddress(p,a,b,c) (p)->lpVtbl->GetPlayerAddress(p,a,b,c)
578#define IDirectPlay2_GetPlayerCaps(p,a,b,c) (p)->lpVtbl->GetPlayerCaps(p,a,b,c)
579#define IDirectPlay2_GetPlayerData(p,a,b,c,d) (p)->lpVtbl->GetPlayerData(p,a,b,c,d)
580#define IDirectPlay2_GetPlayerName(p,a,b,c) (p)->lpVtbl->GetPlayerName(p,a,b,c)
581#define IDirectPlay2_GetSessionDesc(p,a,b) (p)->lpVtbl->GetSessionDesc(p,a,b)
582#define IDirectPlay2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
583#define IDirectPlay2_Open(p,a,b) (p)->lpVtbl->Open(p,a,b)
584#define IDirectPlay2_Receive(p,a,b,c,d,e) (p)->lpVtbl->Receive(p,a,b,c,d,e)
585#define IDirectPlay2_Send(p,a,b,c,d,e) (p)->lpVtbl->Send(p,a,b,c,d,e)
586#define IDirectPlay2_SetGroupData(p,a,b,c,d) (p)->lpVtbl->SetGroupData(p,a,b,c,d)
587#define IDirectPlay2_SetGroupName(p,a,b,c) (p)->lpVtbl->SetGroupName(p,a,b,c)
588#define IDirectPlay2_SetPlayerData(p,a,b,c,d) (p)->lpVtbl->SetPlayerData(p,a,b,c,d)
589#define IDirectPlay2_SetPlayerName(p,a,b,c) (p)->lpVtbl->SetPlayerName(p,a,b,c)
590#define IDirectPlay2_SetSessionDesc(p,a,b) (p)->lpVtbl->SetSessionDesc(p,a,b)
594#define IDirectPlay2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
595#define IDirectPlay2_AddRef(p) (p)->AddRef()
596#define IDirectPlay2_Release(p) (p)->Release()
597#define IDirectPlay2_AddPlayerToGroup(p,a,b) (p)->AddPlayerToGroup(a,b)
598#define IDirectPlay2_Close(p) (p)->Close()
599#define IDirectPlay2_CreateGroup(p,a,b,c,d,e) (p)->CreateGroup(a,b,c,d,e)
600#define IDirectPlay2_CreatePlayer(p,a,b,c,d,e,f) (p)->CreatePlayer(a,b,c,d,e,f)
601#define IDirectPlay2_DeletePlayerFromGroup(p,a,b) (p)->DeletePlayerFromGroup(a,b)
602#define IDirectPlay2_DestroyGroup(p,a) (p)->DestroyGroup(a)
603#define IDirectPlay2_DestroyPlayer(p,a) (p)->DestroyPlayer(a)
604#define IDirectPlay2_EnumGroupPlayers(p,a,b,c,d,e) (p)->EnumGroupPlayers(a,b,c,d,e)
605#define IDirectPlay2_EnumGroups(p,a,b,c,d) (p)->EnumGroups(a,b,c,d)
606#define IDirectPlay2_EnumPlayers(p,a,b,c,d) (p)->EnumPlayers(a,b,c,d)
607#define IDirectPlay2_EnumSessions(p,a,b,c,d,e) (p)->EnumSessions(a,b,c,d,e)
608#define IDirectPlay2_GetCaps(p,a,b) (p)->GetCaps(a,b)
609#define IDirectPlay2_GetMessageCount(p,a,b) (p)->GetMessageCount(a,b)
610#define IDirectPlay2_GetGroupData(p,a,b,c,d) (p)->GetGroupData(a,b,c,d)
611#define IDirectPlay2_GetGroupName(p,a,b,c) (p)->GetGroupName(a,b,c)
612#define IDirectPlay2_GetPlayerAddress(p,a,b,c) (p)->GetPlayerAddress(a,b,c)
613#define IDirectPlay2_GetPlayerCaps(p,a,b,c) (p)->GetPlayerCaps(a,b,c)
614#define IDirectPlay2_GetPlayerData(p,a,b,c,d) (p)->GetPlayerData(a,b,c,d)
615#define IDirectPlay2_GetPlayerName(p,a,b,c) (p)->GetPlayerName(a,b,c)
616#define IDirectPlay2_GetSessionDesc(p,a,b) (p)->GetSessionDesc(a,b)
617#define IDirectPlay2_Initialize(p,a) (p)->Initialize(a)
618#define IDirectPlay2_Open(p,a,b) (p)->Open(a,b)
619#define IDirectPlay2_Receive(p,a,b,c,d,e) (p)->Receive(a,b,c,d,e)
620#define IDirectPlay2_Send(p,a,b,c,d,e) (p)->Send(a,b,c,d,e)
621#define IDirectPlay2_SetGroupData(p,a,b,c,d) (p)->SetGroupData(a,b,c,d)
622#define IDirectPlay2_SetGroupName(p,a,b,c) (p)->SetGroupName(a,b,c)
623#define IDirectPlay2_SetPlayerData(p,a,b,c,d) (p)->SetPlayerData(a,b,c,d)
624#define IDirectPlay2_SetPlayerName(p,a,b,c) (p)->SetPlayerName(a,b,c)
625#define IDirectPlay2_SetSessionDesc(p,a,b) (p)->SetSessionDesc(a,b)
636#define INTERFACE IDirectPlay3
640 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID * ppvObj) PURE;
641 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
642 STDMETHOD_(ULONG,Release) (THIS) PURE;
644 STDMETHOD(AddPlayerToGroup) (THIS_
DPID,
DPID) PURE;
645 STDMETHOD(Close) (THIS) PURE;
648 STDMETHOD(DeletePlayerFromGroup)(THIS_
DPID,
DPID) PURE;
649 STDMETHOD(DestroyGroup) (THIS_
DPID) PURE;
650 STDMETHOD(DestroyPlayer) (THIS_
DPID) PURE;
651 STDMETHOD(EnumGroupPlayers) (THIS_
DPID,LPGUID,LPDPENUMPLAYERSCALLBACK2,
LPVOID,
DWORD) PURE;
652 STDMETHOD(EnumGroups) (THIS_ LPGUID,LPDPENUMPLAYERSCALLBACK2,
LPVOID,
DWORD) PURE;
653 STDMETHOD(EnumPlayers) (THIS_ LPGUID,LPDPENUMPLAYERSCALLBACK2,
LPVOID,
DWORD) PURE;
657 STDMETHOD(GetGroupName) (THIS_
DPID,
LPVOID,LPDWORD) PURE;
658 STDMETHOD(GetMessageCount) (THIS_
DPID, LPDWORD) PURE;
659 STDMETHOD(GetPlayerAddress) (THIS_
DPID,
LPVOID,LPDWORD) PURE;
662 STDMETHOD(GetPlayerName) (THIS_
DPID,
LPVOID,LPDWORD) PURE;
663 STDMETHOD(GetSessionDesc) (THIS_
LPVOID,LPDWORD) PURE;
664 STDMETHOD(Initialize) (THIS_ LPGUID) PURE;
674 STDMETHOD(AddGroupToGroup) (THIS_
DPID,
DPID) PURE;
676 STDMETHOD(DeleteGroupFromGroup) (THIS_
DPID,
DPID) PURE;
677 STDMETHOD(EnumConnections) (THIS_
LPCGUID,LPDPENUMCONNECTIONSCALLBACK,
LPVOID,
DWORD) PURE;
678 STDMETHOD(EnumGroupsInGroup) (THIS_
DPID,LPGUID,LPDPENUMPLAYERSCALLBACK2,
LPVOID,
DWORD) PURE;
679 STDMETHOD(GetGroupConnectionSettings)(THIS_
DWORD,
DPID,
LPVOID, LPDWORD) PURE;
680 STDMETHOD(InitializeConnection) (THIS_
LPVOID,
DWORD) PURE;
684 STDMETHOD(StartSession) (THIS_
DWORD,
DPID);
685 STDMETHOD(GetGroupFlags) (THIS_
DPID,LPDWORD);
686 STDMETHOD(GetGroupParent) (THIS_
DPID,
LPDPID);
688 STDMETHOD(GetPlayerFlags) (THIS_
DPID,LPDWORD);
697#if !defined(__cplusplus) || defined(CINTERFACE)
699#define IDirectPlay3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
700#define IDirectPlay3_AddRef(p) (p)->lpVtbl->AddRef(p)
701#define IDirectPlay3_Release(p) (p)->lpVtbl->Release(p)
702#define IDirectPlay3_AddPlayerToGroup(p,a,b) (p)->lpVtbl->AddPlayerToGroup(p,a,b)
703#define IDirectPlay3_Close(p) (p)->lpVtbl->Close(p)
704#define IDirectPlay3_CreateGroup(p,a,b,c,d,e) (p)->lpVtbl->CreateGroup(p,a,b,c,d,e)
705#define IDirectPlay3_CreatePlayer(p,a,b,c,d,e,f) (p)->lpVtbl->CreatePlayer(p,a,b,c,d,e,f)
706#define IDirectPlay3_DeletePlayerFromGroup(p,a,b) (p)->lpVtbl->DeletePlayerFromGroup(p,a,b)
707#define IDirectPlay3_DestroyGroup(p,a) (p)->lpVtbl->DestroyGroup(p,a)
708#define IDirectPlay3_DestroyPlayer(p,a) (p)->lpVtbl->DestroyPlayer(p,a)
709#define IDirectPlay3_EnumGroupPlayers(p,a,b,c,d,e) (p)->lpVtbl->EnumGroupPlayers(p,a,b,c,d,e)
710#define IDirectPlay3_EnumGroups(p,a,b,c,d) (p)->lpVtbl->EnumGroups(p,a,b,c,d)
711#define IDirectPlay3_EnumPlayers(p,a,b,c,d) (p)->lpVtbl->EnumPlayers(p,a,b,c,d)
712#define IDirectPlay3_EnumSessions(p,a,b,c,d,e) (p)->lpVtbl->EnumSessions(p,a,b,c,d,e)
713#define IDirectPlay3_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b)
714#define IDirectPlay3_GetMessageCount(p,a,b) (p)->lpVtbl->GetMessageCount(p,a,b)
715#define IDirectPlay3_GetGroupData(p,a,b,c,d) (p)->lpVtbl->GetGroupData(p,a,b,c,d)
716#define IDirectPlay3_GetGroupName(p,a,b,c) (p)->lpVtbl->GetGroupName(p,a,b,c)
717#define IDirectPlay3_GetPlayerAddress(p,a,b,c) (p)->lpVtbl->GetPlayerAddress(p,a,b,c)
718#define IDirectPlay3_GetPlayerCaps(p,a,b,c) (p)->lpVtbl->GetPlayerCaps(p,a,b,c)
719#define IDirectPlay3_GetPlayerData(p,a,b,c,d) (p)->lpVtbl->GetPlayerData(p,a,b,c,d)
720#define IDirectPlay3_GetPlayerName(p,a,b,c) (p)->lpVtbl->GetPlayerName(p,a,b,c)
721#define IDirectPlay3_GetSessionDesc(p,a,b) (p)->lpVtbl->GetSessionDesc(p,a,b)
722#define IDirectPlay3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
723#define IDirectPlay3_Open(p,a,b) (p)->lpVtbl->Open(p,a,b)
724#define IDirectPlay3_Receive(p,a,b,c,d,e) (p)->lpVtbl->Receive(p,a,b,c,d,e)
725#define IDirectPlay3_Send(p,a,b,c,d,e) (p)->lpVtbl->Send(p,a,b,c,d,e)
726#define IDirectPlay3_SetGroupData(p,a,b,c,d) (p)->lpVtbl->SetGroupData(p,a,b,c,d)
727#define IDirectPlay3_SetGroupName(p,a,b,c) (p)->lpVtbl->SetGroupName(p,a,b,c)
728#define IDirectPlay3_SetPlayerData(p,a,b,c,d) (p)->lpVtbl->SetPlayerData(p,a,b,c,d)
729#define IDirectPlay3_SetPlayerName(p,a,b,c) (p)->lpVtbl->SetPlayerName(p,a,b,c)
730#define IDirectPlay3_SetSessionDesc(p,a,b) (p)->lpVtbl->SetSessionDesc(p,a,b)
731#define IDirectPlay3_AddGroupToGroup(p,a,b) (p)->lpVtbl->AddGroupToGroup(p,a,b)
732#define IDirectPlay3_CreateGroupInGroup(p,a,b,c,d,e,f) (p)->lpVtbl->CreateGroupInGroup(p,a,b,c,d,e,f)
733#define IDirectPlay3_DeleteGroupFromGroup(p,a,b) (p)->lpVtbl->DeleteGroupFromGroup(p,a,b)
734#define IDirectPlay3_EnumConnections(p,a,b,c,d) (p)->lpVtbl->EnumConnections(p,a,b,c,d)
735#define IDirectPlay3_EnumGroupsInGroup(p,a,b,c,d,e) (p)->lpVtbl->EnumGroupsInGroup(p,a,b,c,d,e)
736#define IDirectPlay3_GetGroupConnectionSettings(p,a,b,c,d) (p)->lpVtbl->GetGroupConnectionSettings(p,a,b,c,d)
737#define IDirectPlay3_InitializeConnection(p,a,b) (p)->lpVtbl->InitializeConnection(p,a,b)
738#define IDirectPlay3_SecureOpen(p,a,b,c,d) (p)->lpVtbl->SecureOpen(p,a,b,c,d)
739#define IDirectPlay3_SendChatMessage(p,a,b,c,d) (p)->lpVtbl->SendChatMessage(p,a,b,c,d)
740#define IDirectPlay3_SetGroupConnectionSettings(p,a,b,c) (p)->lpVtbl->SetGroupConnectionSettings(p,a,b,c)
741#define IDirectPlay3_StartSession(p,a,b) (p)->lpVtbl->StartSession(p,a,b)
742#define IDirectPlay3_GetGroupFlags(p,a,b) (p)->lpVtbl->GetGroupFlags(p,a,b)
743#define IDirectPlay3_GetGroupParent(p,a,b) (p)->lpVtbl->GetGroupParent(p,a,b)
744#define IDirectPlay3_GetPlayerAccount(p,a,b,c,d) (p)->lpVtbl->GetPlayerAccount(p,a,b,c,d)
745#define IDirectPlay3_GetPlayerFlags(p,a,b) (p)->lpVtbl->GetPlayerFlags(p,a,b)
749#define IDirectPlay3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
750#define IDirectPlay3_AddRef(p) (p)->AddRef()
751#define IDirectPlay3_Release(p) (p)->Release()
752#define IDirectPlay3_AddPlayerToGroup(p,a,b) (p)->AddPlayerToGroup(a,b)
753#define IDirectPlay3_Close(p) (p)->Close()
754#define IDirectPlay3_CreateGroup(p,a,b,c,d,e) (p)->CreateGroup(a,b,c,d,e)
755#define IDirectPlay3_CreatePlayer(p,a,b,c,d,e,f) (p)->CreatePlayer(a,b,c,d,e,f)
756#define IDirectPlay3_DeletePlayerFromGroup(p,a,b) (p)->DeletePlayerFromGroup(a,b)
757#define IDirectPlay3_DestroyGroup(p,a) (p)->DestroyGroup(a)
758#define IDirectPlay3_DestroyPlayer(p,a) (p)->DestroyPlayer(a)
759#define IDirectPlay3_EnumGroupPlayers(p,a,b,c,d,e) (p)->EnumGroupPlayers(a,b,c,d,e)
760#define IDirectPlay3_EnumGroups(p,a,b,c,d) (p)->EnumGroups(a,b,c,d)
761#define IDirectPlay3_EnumPlayers(p,a,b,c,d) (p)->EnumPlayers(a,b,c,d)
762#define IDirectPlay3_EnumSessions(p,a,b,c,d,e) (p)->EnumSessions(a,b,c,d,e)
763#define IDirectPlay3_GetCaps(p,a,b) (p)->GetCaps(a,b)
764#define IDirectPlay3_GetMessageCount(p,a,b) (p)->GetMessageCount(a,b)
765#define IDirectPlay3_GetGroupData(p,a,b,c,d) (p)->GetGroupData(a,b,c,d)
766#define IDirectPlay3_GetGroupName(p,a,b,c) (p)->GetGroupName(a,b,c)
767#define IDirectPlay3_GetPlayerAddress(p,a,b,c) (p)->GetPlayerAddress(a,b,c)
768#define IDirectPlay3_GetPlayerCaps(p,a,b,c) (p)->GetPlayerCaps(a,b,c)
769#define IDirectPlay3_GetPlayerData(p,a,b,c,d) (p)->GetPlayerData(a,b,c,d)
770#define IDirectPlay3_GetPlayerName(p,a,b,c) (p)->GetPlayerName(a,b,c)
771#define IDirectPlay3_GetSessionDesc(p,a,b) (p)->GetSessionDesc(a,b)
772#define IDirectPlay3_Initialize(p,a) (p)->Initialize(a)
773#define IDirectPlay3_Open(p,a,b) (p)->Open(a,b)
774#define IDirectPlay3_Receive(p,a,b,c,d,e) (p)->Receive(a,b,c,d,e)
775#define IDirectPlay3_Send(p,a,b,c,d,e) (p)->Send(a,b,c,d,e)
776#define IDirectPlay3_SetGroupData(p,a,b,c,d) (p)->SetGroupData(a,b,c,d)
777#define IDirectPlay3_SetGroupName(p,a,b,c) (p)->SetGroupName(a,b,c)
778#define IDirectPlay3_SetPlayerData(p,a,b,c,d) (p)->SetPlayerData(a,b,c,d)
779#define IDirectPlay3_SetPlayerName(p,a,b,c) (p)->SetPlayerName(a,b,c)
780#define IDirectPlay3_SetSessionDesc(p,a,b) (p)->SetSessionDesc(a,b)
781#define IDirectPlay3_AddGroupToGroup(p,a,b) (p)->AddGroupToGroup(a,b)
782#define IDirectPlay3_CreateGroupInGroup(p,a,b,c,d,e,f) (p)->CreateGroupInGroup(a,b,c,d,e,f)
783#define IDirectPlay3_DeleteGroupFromGroup(p,a,b) (p)->DeleteGroupFromGroup(a,b)
784#define IDirectPlay3_EnumConnections(p,a,b,c,d) (p)->EnumConnections(a,b,c,d)
785#define IDirectPlay3_EnumGroupsInGroup(p,a,b,c,d,e) (p)->EnumGroupsInGroup(a,b,c,d,e)
786#define IDirectPlay3_GetGroupConnectionSettings(p,a,b,c,d) (p)->GetGroupConnectionSettings(a,b,c,d)
787#define IDirectPlay3_InitializeConnection(p,a,b) (p)->InitializeConnection(a,b)
788#define IDirectPlay3_SecureOpen(p,a,b,c,d) (p)->SecureOpen(a,b,c,d)
789#define IDirectPlay3_SendChatMessage(p,a,b,c,d) (p)->SendChatMessage(a,b,c,d)
790#define IDirectPlay3_SetGroupConnectionSettings(p,a,b,c) (p)->SetGroupConnectionSettings(a,b,c)
791#define IDirectPlay3_StartSession(p,a,b) (p)->StartSession(a,b)
792#define IDirectPlay3_GetGroupFlags(p,a,b) (p)->GetGroupFlags(a,b)
793#define IDirectPlay3_GetGroupParent(p,a,b) (p)->GetGroupParent(a,b)
794#define IDirectPlay3_GetPlayerAccount(p,a,b,c,d) (p)->GetPlayerAccount(a,b,c,d)
795#define IDirectPlay3_GetPlayerFlags(p,a,b) (p)->GetPlayerFlags(a,b)
808#define DPCONNECTION_DIRECTPLAY 0x00000001
813#define DPCONNECTION_DIRECTPLAYLOBBY 0x00000002
825#define DPENUMPLAYERS_ALL 0x00000000
826#define DPENUMGROUPS_ALL DPENUMPLAYERS_ALL
833#define DPENUMPLAYERS_LOCAL 0x00000008
834#define DPENUMGROUPS_LOCAL DPENUMPLAYERS_LOCAL
840#define DPENUMPLAYERS_REMOTE 0x00000010
841#define DPENUMGROUPS_REMOTE DPENUMPLAYERS_REMOTE
846#define DPENUMPLAYERS_GROUP 0x00000020
852#define DPENUMPLAYERS_SESSION 0x00000080
853#define DPENUMGROUPS_SESSION DPENUMPLAYERS_SESSION
858#define DPENUMPLAYERS_SERVERPLAYER 0x00000100
863#define DPENUMPLAYERS_SPECTATOR 0x00000200
868#define DPENUMGROUPS_SHORTCUT 0x00000400
873#define DPENUMGROUPS_STAGINGAREA 0x00000800
885#define DPPLAYER_SERVERPLAYER DPENUMPLAYERS_SERVERPLAYER
891#define DPPLAYER_SPECTATOR DPENUMPLAYERS_SPECTATOR
897#define DPPLAYER_LOCAL DPENUMPLAYERS_LOCAL
910#define DPGROUP_STAGINGAREA DPENUMGROUPS_STAGINGAREA
916#define DPGROUP_LOCAL DPENUMGROUPS_LOCAL
927#define DPENUMSESSIONS_AVAILABLE 0x00000001
932#define DPENUMSESSIONS_ALL 0x00000002
940 #define DPENUMSESSIONS_ASYNC 0x00000010
945 #define DPENUMSESSIONS_STOPASYNC 0x00000020
950 #define DPENUMSESSIONS_PASSWORDREQUIRED 0x00000040
956 #define DPENUMSESSIONS_RETURNSTATUS 0x00000080
968#define DPGETCAPS_GUARANTEED 0x00000001
983#define DPGET_REMOTE 0x00000000
989#define DPGET_LOCAL 0x00000001
1001#define DPOPEN_JOIN 0x00000001
1006#define DPOPEN_CREATE 0x00000002
1012 #define DPOPEN_RETURNSTATUS DPENUMSESSIONS_RETURNSTATUS
1024#define DPLCONNECTION_CREATESESSION DPOPEN_CREATE
1030#define DPLCONNECTION_JOINSESSION DPOPEN_JOIN
1042#define DPRECEIVE_ALL 0x00000001
1047#define DPRECEIVE_TOPLAYER 0x00000002
1052#define DPRECEIVE_FROMPLAYER 0x00000004
1057#define DPRECEIVE_PEEK 0x00000008
1070#define DPSEND_GUARANTEED 0x00000001
1076#define DPSEND_HIGHPRIORITY 0x00000002
1081#define DPSEND_OPENSTREAM 0x00000008
1086#define DPSEND_CLOSESTREAM 0x00000010
1091#define DPSEND_SIGNED 0x00000020
1096#define DPSEND_ENCRYPTED 0x00000040
1110#define DPSET_REMOTE 0x00000000
1115#define DPSET_LOCAL 0x00000001
1121#define DPSET_GUARANTEED 0x00000002
1141#define DPSYS_CREATEPLAYERORGROUP 0x0003
1147#define DPSYS_DESTROYPLAYERORGROUP 0x0005
1153#define DPSYS_ADDPLAYERTOGROUP 0x0007
1159#define DPSYS_DELETEPLAYERFROMGROUP 0x0021
1166#define DPSYS_SESSIONLOST 0x0031
1173#define DPSYS_HOST 0x0101
1181#define DPSYS_SETPLAYERORGROUPDATA 0x0102
1189#define DPSYS_SETPLAYERORGROUPNAME 0x0103
1195#define DPSYS_SETSESSIONDESC 0x0104
1201#define DPSYS_ADDGROUPTOGROUP 0x0105
1207#define DPSYS_DELETEGROUPFROMGROUP 0x0106
1213#define DPSYS_SECUREMESSAGE 0x0107
1219#define DPSYS_STARTSESSION 0x0108
1225#define DPSYS_CHAT 0x0109
1231#define DPPLAYERTYPE_GROUP 0x00000000
1232#define DPPLAYERTYPE_PLAYER 0x00000001
1425#define DPERR_ALREADYINITIALIZED MAKE_DPHRESULT( 5 )
1426#define DPERR_ACCESSDENIED MAKE_DPHRESULT( 10 )
1427#define DPERR_ACTIVEPLAYERS MAKE_DPHRESULT( 20 )
1428#define DPERR_BUFFERTOOSMALL MAKE_DPHRESULT( 30 )
1429#define DPERR_CANTADDPLAYER MAKE_DPHRESULT( 40 )
1430#define DPERR_CANTCREATEGROUP MAKE_DPHRESULT( 50 )
1431#define DPERR_CANTCREATEPLAYER MAKE_DPHRESULT( 60 )
1432#define DPERR_CANTCREATESESSION MAKE_DPHRESULT( 70 )
1433#define DPERR_CAPSNOTAVAILABLEYET MAKE_DPHRESULT( 80 )
1434#define DPERR_EXCEPTION MAKE_DPHRESULT( 90 )
1435#define DPERR_GENERIC E_FAIL
1436#define DPERR_INVALIDFLAGS MAKE_DPHRESULT( 120 )
1437#define DPERR_INVALIDOBJECT MAKE_DPHRESULT( 130 )
1438#define DPERR_INVALIDPARAM E_INVALIDARG
1439#define DPERR_INVALIDPARAMS DPERR_INVALIDPARAM
1440#define DPERR_INVALIDPLAYER MAKE_DPHRESULT( 150 )
1441#define DPERR_INVALIDGROUP MAKE_DPHRESULT( 155 )
1442#define DPERR_NOCAPS MAKE_DPHRESULT( 160 )
1443#define DPERR_NOCONNECTION MAKE_DPHRESULT( 170 )
1444#define DPERR_NOMEMORY E_OUTOFMEMORY
1445#define DPERR_OUTOFMEMORY DPERR_NOMEMORY
1446#define DPERR_NOMESSAGES MAKE_DPHRESULT( 190 )
1447#define DPERR_NONAMESERVERFOUND MAKE_DPHRESULT( 200 )
1448#define DPERR_NOPLAYERS MAKE_DPHRESULT( 210 )
1449#define DPERR_NOSESSIONS MAKE_DPHRESULT( 220 )
1450#define DPERR_PENDING E_PENDING
1451#define DPERR_SENDTOOBIG MAKE_DPHRESULT( 230 )
1452#define DPERR_TIMEOUT MAKE_DPHRESULT( 240 )
1453#define DPERR_UNAVAILABLE MAKE_DPHRESULT( 250 )
1454#define DPERR_UNSUPPORTED E_NOTIMPL
1455#define DPERR_BUSY MAKE_DPHRESULT( 270 )
1456#define DPERR_USERCANCEL MAKE_DPHRESULT( 280 )
1457#define DPERR_NOINTERFACE E_NOINTERFACE
1458#define DPERR_CANNOTCREATESERVER MAKE_DPHRESULT( 290 )
1459#define DPERR_PLAYERLOST MAKE_DPHRESULT( 300 )
1460#define DPERR_SESSIONLOST MAKE_DPHRESULT( 310 )
1461#define DPERR_UNINITIALIZED MAKE_DPHRESULT( 320 )
1462#define DPERR_NONEWPLAYERS MAKE_DPHRESULT( 330 )
1463#define DPERR_INVALIDPASSWORD MAKE_DPHRESULT( 340 )
1464#define DPERR_CONNECTING MAKE_DPHRESULT( 350 )
1467#define DPERR_BUFFERTOOLARGE MAKE_DPHRESULT( 1000 )
1468#define DPERR_CANTCREATEPROCESS MAKE_DPHRESULT( 1010 )
1469#define DPERR_APPNOTSTARTED MAKE_DPHRESULT( 1020 )
1470#define DPERR_INVALIDINTERFACE MAKE_DPHRESULT( 1030 )
1471#define DPERR_NOSERVICEPROVIDER MAKE_DPHRESULT( 1040 )
1472#define DPERR_UNKNOWNAPPLICATION MAKE_DPHRESULT( 1050 )
1473#define DPERR_NOTLOBBIED MAKE_DPHRESULT( 1070 )
1474#define DPERR_SERVICEPROVIDERLOADED MAKE_DPHRESULT( 1080 )
1475#define DPERR_ALREADYREGISTERED MAKE_DPHRESULT( 1090 )
1476#define DPERR_NOTREGISTERED MAKE_DPHRESULT( 1100 )
1481#define DPERR_AUTHENTICATIONFAILED MAKE_DPHRESULT( 2000 )
1482#define DPERR_CANTLOADSSPI MAKE_DPHRESULT( 2010 )
1483#define DPERR_ENCRYPTIONFAILED MAKE_DPHRESULT( 2020 )
1484#define DPERR_SIGNFAILED MAKE_DPHRESULT( 2030 )
1485#define DPERR_CANTLOADSECURITYPACKAGE MAKE_DPHRESULT( 2040 )
1486#define DPERR_ENCRYPTIONNOTSUPPORTED MAKE_DPHRESULT( 2050 )
1487#define DPERR_CANTLOADCAPI MAKE_DPHRESULT( 2060 )
1488#define DPERR_NOTLOGGEDIN MAKE_DPHRESULT( 2070 )
1489#define DPERR_LOGONDENIED MAKE_DPHRESULT( 2080 )
1501#ifndef IDIRECTPLAY2_OR_GREATER
1503#define DPOPEN_OPENSESSION DPOPEN_JOIN
1504#define DPOPEN_CREATESESSION DPOPEN_CREATE
1506#define DPENUMSESSIONS_PREVIOUS 0x00000004
1508#define DPENUMPLAYERS_PREVIOUS 0x00000004
1510#define DPSEND_GUARANTEE DPSEND_GUARANTEED
1511#define DPSEND_TRYONCE 0x00000004
1513#define DPCAPS_NAMESERVICE 0x00000001
1514#define DPCAPS_NAMESERVER DPCAPS_ISHOST
1515#define DPCAPS_GUARANTEED 0x00000004
1517#define DPLONGNAMELEN 52
1518#define DPSHORTNAMELEN 20
1519#define DPSESSIONNAMELEN 32
1520#define DPPASSWORDLEN 16
1521#define DPUSERRESERVED 16
1523#define DPSYS_ADDPLAYER 0x0003
1524#define DPSYS_DELETEPLAYER 0x0005
1526#define DPSYS_DELETEGROUP 0x0020
1527#define DPSYS_DELETEPLAYERFROMGRP 0x0021
1528#define DPSYS_CONNECT 0x484b
1558 LPSTR lpFriendlyName,
1592#define INTERFACE IDirectPlay
1596 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID * ppvObj) PURE;
1597 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
1598 STDMETHOD_(ULONG,Release) (THIS) PURE;
1600 STDMETHOD(AddPlayerToGroup) (THIS_
DPID,
DPID) PURE;
1601 STDMETHOD(Close) (THIS) PURE;
1602 STDMETHOD(CreatePlayer) (THIS_
LPDPID,LPSTR,LPSTR,LPHANDLE) PURE;
1603 STDMETHOD(CreateGroup) (THIS_
LPDPID,LPSTR,LPSTR) PURE;
1604 STDMETHOD(DeletePlayerFromGroup)(THIS_
DPID,
DPID) PURE;
1605 STDMETHOD(DestroyPlayer) (THIS_
DPID) PURE;
1606 STDMETHOD(DestroyGroup) (THIS_
DPID) PURE;
1607 STDMETHOD(EnableNewPlayers) (THIS_
BOOL) PURE;
1612 STDMETHOD(GetCaps) (THIS_
LPDPCAPS) PURE;
1613 STDMETHOD(GetMessageCount) (THIS_
DPID, LPDWORD) PURE;
1615 STDMETHOD(GetPlayerName) (THIS_
DPID,LPSTR,LPDWORD,LPSTR,LPDWORD) PURE;
1616 STDMETHOD(Initialize) (THIS_ LPGUID) PURE;
1619 STDMETHOD(SaveSession) (THIS_ LPSTR) PURE;
1621 STDMETHOD(SetPlayerName) (THIS_
DPID,LPSTR,LPSTR) PURE;
1630#if !defined(__cplusplus) || defined(CINTERFACE)
1632#define IDirectPlay_AddPlayerToGroup(p,a,b) (p)->lpVtbl->AddPlayerToGroup(p,a,b)
1633#define IDirectPlay_Close(p) (p)->lpVtbl->Close(p)
1634#define IDirectPlay_CreateGroup(p,a,b,c) (p)->lpVtbl->CreateGroup(p,a,b,c)
1635#define IDirectPlay_CreatePlayer(p,a,b,c,d) (p)->lpVtbl->CreatePlayer(p,a,b,c,d)
1636#define IDirectPlay_DeletePlayerFromGroup(p,a,b) (p)->lpVtbl->DeletePlayerFromGroup(p,a,b)
1637#define IDirectPlay_DestroyGroup(p,a) (p)->lpVtbl->DestroyGroup(p,a)
1638#define IDirectPlay_DestroyPlayer(p,a) (p)->lpVtbl->DestroyPlayer(p,a)
1639#define IDirectPlay_EnableNewPlayers(p,a) (p)->lpVtbl->EnableNewPlayers(p,a)
1640#define IDirectPlay_EnumGroupPlayers(p,a,b,c,d) (p)->lpVtbl->EnumGroupPlayers(p,a,b,c,d)
1641#define IDirectPlay_EnumGroups(p,a,b,c,d) (p)->lpVtbl->EnumGroups(p,a,b,c,d)
1642#define IDirectPlay_EnumPlayers(p,a,b,c,d) (p)->lpVtbl->EnumPlayers(p,a,b,c,d)
1643#define IDirectPlay_EnumSessions(p,a,b,c,d,e) (p)->lpVtbl->EnumSessions(p,a,b,c,d,e)
1644#define IDirectPlay_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
1645#define IDirectPlay_GetMessageCount(p,a,b) (p)->lpVtbl->GetMessageCount(p,a,b)
1646#define IDirectPlay_GetPlayerCaps(p,a,b) (p)->lpVtbl->GetPlayerCaps(p,a,b)
1647#define IDirectPlay_GetPlayerName(p,a,b,c,d,e) (p)->lpVtbl->GetPlayerName(p,a,b,c,d,e)
1648#define IDirectPlay_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
1649#define IDirectPlay_Open(p,a) (p)->lpVtbl->Open(p,a)
1650#define IDirectPlay_Receive(p,a,b,c,d,e) (p)->lpVtbl->Receive(p,a,b,c,d,e)
1651#define IDirectPlay_SaveSession(p,a) (p)->lpVtbl->SaveSession(p,a)
1652#define IDirectPlay_Send(p,a,b,c,d,e) (p)->lpVtbl->Send(p,a,b,c,d,e)
1653#define IDirectPlay_SetPlayerName(p,a,b,c) (p)->lpVtbl->SetPlayerName(p,a,b,c)
1657#define IDirectPlay_AddPlayerToGroup(p,a,b) (p)->AddPlayerToGroup(a,b)
1658#define IDirectPlay_Close(p) (p)->Close()
1659#define IDirectPlay_CreateGroup(p,a,b,c) (p)->CreateGroup(a,b,c)
1660#define IDirectPlay_CreatePlayer(p,a,b,c,d) (p)->CreatePlayer(a,b,c,d)
1661#define IDirectPlay_DeletePlayerFromGroup(p,a,b) (p)->DeletePlayerFromGroup(a,b)
1662#define IDirectPlay_DestroyGroup(p,a) (p)->DestroyGroup(a)
1663#define IDirectPlay_DestroyPlayer(p,a) (p)->DestroyPlayer(a)
1664#define IDirectPlay_EnableNewPlayers(p,a) (p)->EnableNewPlayers(a)
1665#define IDirectPlay_EnumGroupPlayers(p,a,b,c,d) (p)->EnumGroupPlayers(a,b,c,d)
1666#define IDirectPlay_EnumGroups(p,a,b,c,d) (p)->EnumGroups(a,b,c,d)
1667#define IDirectPlay_EnumPlayers(p,a,b,c,d) (p)->EnumPlayers(a,b,c,d)
1668#define IDirectPlay_EnumSessions(p,a,b,c,d,e) (p)->EnumSessions(a,b,c,d,e)
1669#define IDirectPlay_GetCaps(p,a) (p)->GetCaps(a)
1670#define IDirectPlay_GetMessageCount(p,a,b) (p)->GetMessageCount(a,b)
1671#define IDirectPlay_GetPlayerCaps(p,a,b) (p)->GetPlayerCaps(a,b)
1672#define IDirectPlay_GetPlayerName(p,a,b,c,d,e) (p)->GetPlayerName(a,b,c,d,e)
1673#define IDirectPlay_Initialize(p,a) (p)->Initialize(a)
1674#define IDirectPlay_Open(p,a) (p)->Open(a)
1675#define IDirectPlay_Receive(p,a,b,c,d,e) (p)->Receive(a,b,c,d,e)
1676#define IDirectPlay_SaveSession(p,a) (p)->SaveSession(a)
1677#define IDirectPlay_Send(p,a,b,c,d,e) (p)->Send(a,b,c,d,e)
1678#define IDirectPlay_SetPlayerName(p,a,b,c) (p)->SetPlayerName(a,b,c)
1682DEFINE_GUID(IID_IDirectPlay, 0x5454e9a0, 0xdb65, 0x11ce, 0x92, 0x1c, 0x00, 0xaa, 0x00, 0x6c, 0x49, 0x72);
1692#if !defined(__cplusplus) || defined(CINTERFACE)
1694#define IDirectPlay_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1695#define IDirectPlay_AddRef(p) (p)->lpVtbl->AddRef(p)
1696#define IDirectPlay_Release(p) (p)->lpVtbl->Release(p)
1700#define IDirectPlay_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1701#define IDirectPlay_AddRef(p) (p)->AddRef()
1702#define IDirectPlay_Release(p) (p)->Release()
typedef DWORD(FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper
struct DPMSG_SECUREMESSAGE * LPDPMSG_SECUREMESSAGE
typedef BOOL(FAR PASCAL *LPDPENUMSESSIONSCALLBACK2)(LPCDPSESSIONDESC2 lpThisSD
const DPACCOUNTDESC FAR * LPCDPACCOUNTDESC
DPMSG_GENERIC DPMSG_SESSIONLOST
struct DPMSG_CREATEPLAYERORGROUP * LPDPMSG_CREATEPLAYERORGROUP
struct DPSECURITYDESC * LPDPSECURITYDESC
struct IDirectPlay3 FAR * LPDIRECTPLAY3
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
struct DPMSG_CHAT * LPDPMSG_CHAT
const DPSESSIONDESC2 FAR * LPCDPSESSIONDESC2
struct DPMSG_SETSESSIONDESC * LPDPMSG_SETSESSIONDESC
DPMSG_ADDPLAYER DPMSG_ADDGROUP
struct DPMSG_ADDGROUPTOGROUP * LPDPMSG_ADDGROUPTOGROUP
HRESULT WINAPI DirectPlayEnumerateA(LPDPENUMDPCALLBACKA, LPVOID)
struct DPMSG_STARTSESSION * LPDPMSG_STARTSESSION
struct IDirectPlay FAR * LPDIRECTPLAY
DPMSG_SESSIONLOST FAR * LPDPMSG_SESSIONLOST
const DPLCONNECTION FAR * LPCDPLCONNECTION
DPMSG_DELETEPLAYERFROMGROUP FAR * LPDPMSG_DELETEPLAYERFROMGROUP
struct IDirectPlay2 FAR * LPDIRECTPLAY2
struct DPLCONNECTION * LPDPLCONNECTION
const DPSECURITYDESC FAR * LPCDPSECURITYDESC
struct DPMSG_GENERIC * LPDPMSG_GENERIC
struct IDirectPlay3 FAR * LPDIRECTPLAY3A
struct DPSESSIONDESC2 * LPDPSESSIONDESC2
DPMSG_HOST FAR * LPDPMSG_HOST
LPWSTR DWORD dwMajorVersion
BOOL(PASCAL * LPDPENUMPLAYERSCALLBACK)(DPID dpId, LPSTR lpFriendlyName, LPSTR lpFormalName, DWORD dwFlags, LPVOID lpContext)
struct DPMSG_SETPLAYERORGROUPNAME * LPDPMSG_SETPLAYERORGROUPNAME
const DPCREDENTIALS FAR * LPCDPCREDENTIALS
DPMSG_ADDGROUPTOGROUP DPMSG_DELETEGROUPFROMGROUP
struct IDirectPlay3 IDirectPlay3A
struct DPMSG_DESTROYPLAYERORGROUP * LPDPMSG_DESTROYPLAYERORGROUP
BOOL(PASCAL * LPDPENUMSESSIONSCALLBACK)(LPDPSESSIONDESC lpDPSessionDesc, LPVOID lpContext, LPDWORD lpdwTimeOut, DWORD dwFlags)
LPWSTR DWORD DWORD dwMinorVersion
struct DPMSG_SETPLAYERORGROUPDATA * LPDPMSG_SETPLAYERORGROUPDATA
struct IDirectPlay2 IDirectPlay2A
DPMSG_GROUPADD DPMSG_GROUPDELETE
DECLARE_INTERFACE_(IDirectPlay2, IUnknown)
DPMSG_ADDPLAYERTOGROUP DPMSG_DELETEPLAYERFROMGROUP
DPMSG_DELETEGROUPFROMGROUP FAR * LPDPMSG_DELETEGROUPFROMGROUP
const DPNAME FAR * LPCDPNAME
struct IDirectPlay2 FAR * LPDIRECTPLAY2A
LPVOID DWORD dwConnectionSize
LPDPSESSIONDESC2 lpSessionDesc
DWORD dwEncryptionAlgorithm