📄 dplay.h
字号:
STDMETHOD(CreateGroupInGroup) (THIS_ DPID,LPDPID,LPDPNAME,LPVOID,DWORD,DWORD) PURE;
STDMETHOD(DeleteGroupFromGroup) (THIS_ DPID,DPID) PURE;
STDMETHOD(EnumConnections) (THIS_ LPCGUID,LPDPENUMCONNECTIONSCALLBACK,LPVOID,DWORD) PURE;
STDMETHOD(EnumGroupsInGroup) (THIS_ DPID,LPGUID,LPDPENUMPLAYERSCALLBACK2,LPVOID,DWORD) PURE;
STDMETHOD(GetGroupConnectionSettings)(THIS_ DWORD, DPID, LPVOID, LPDWORD) PURE;
STDMETHOD(InitializeConnection) (THIS_ LPVOID,DWORD) PURE;
STDMETHOD(SecureOpen) (THIS_ LPCDPSESSIONDESC2,DWORD,LPCDPSECURITYDESC,LPCDPCREDENTIALS) PURE;
STDMETHOD(SendChatMessage) (THIS_ DPID,DPID,DWORD,LPDPCHAT) PURE;
STDMETHOD(SetGroupConnectionSettings)(THIS_ DWORD,DPID,LPDPLCONNECTION) PURE;
STDMETHOD(StartSession) (THIS_ DWORD,DPID) PURE;
STDMETHOD(GetGroupFlags) (THIS_ DPID,LPDWORD) PURE;
STDMETHOD(GetGroupParent) (THIS_ DPID,LPDPID) PURE;
STDMETHOD(GetPlayerAccount) (THIS_ DPID, DWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(GetPlayerFlags) (THIS_ DPID,LPDWORD) PURE;
/*** IDirectPlay4 methods ***/
STDMETHOD(GetGroupOwner) (THIS_ DPID, LPDPID) PURE;
STDMETHOD(SetGroupOwner) (THIS_ DPID, DPID) PURE;
STDMETHOD(SendEx) (THIS_ DPID, DPID, DWORD, LPVOID, DWORD, DWORD, DWORD, LPVOID, DWORD_PTR *) PURE;
STDMETHOD(GetMessageQueue) (THIS_ DPID, DPID, DWORD, LPDWORD, LPDWORD) PURE;
STDMETHOD(CancelMessage) (THIS_ DWORD, DWORD) PURE;
STDMETHOD(CancelPriority) (THIS_ DWORD, DWORD, DWORD) PURE;
};
/****************************************************************************
*
* IDirectPlayX interface macros (for IDirectPlay4 and beyond)
*
****************************************************************************/
#if !defined(__cplusplus) || defined(CINTERFACE)
#define IDirectPlayX_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirectPlayX_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirectPlayX_Release(p) (p)->lpVtbl->Release(p)
#define IDirectPlayX_AddPlayerToGroup(p,a,b) (p)->lpVtbl->AddPlayerToGroup(p,a,b)
#define IDirectPlayX_CancelMessage(p,a,b) (p)->lpVtbl->CancelMessage(p,a,b)
#define IDirectPlayX_CancelPriority(p,a,b,c) (p)->lpVtbl->CancelPriority(p,a,b,c)
#define IDirectPlayX_Close(p) (p)->lpVtbl->Close(p)
#define IDirectPlayX_CreateGroup(p,a,b,c,d,e) (p)->lpVtbl->CreateGroup(p,a,b,c,d,e)
#define IDirectPlayX_CreatePlayer(p,a,b,c,d,e,f) (p)->lpVtbl->CreatePlayer(p,a,b,c,d,e,f)
#define IDirectPlayX_DeletePlayerFromGroup(p,a,b) (p)->lpVtbl->DeletePlayerFromGroup(p,a,b)
#define IDirectPlayX_DestroyGroup(p,a) (p)->lpVtbl->DestroyGroup(p,a)
#define IDirectPlayX_DestroyPlayer(p,a) (p)->lpVtbl->DestroyPlayer(p,a)
#define IDirectPlayX_EnumGroupPlayers(p,a,b,c,d,e) (p)->lpVtbl->EnumGroupPlayers(p,a,b,c,d,e)
#define IDirectPlayX_EnumGroups(p,a,b,c,d) (p)->lpVtbl->EnumGroups(p,a,b,c,d)
#define IDirectPlayX_EnumPlayers(p,a,b,c,d) (p)->lpVtbl->EnumPlayers(p,a,b,c,d)
#define IDirectPlayX_EnumSessions(p,a,b,c,d,e) (p)->lpVtbl->EnumSessions(p,a,b,c,d,e)
#define IDirectPlayX_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b)
#define IDirectPlayX_GetMessageCount(p,a,b) (p)->lpVtbl->GetMessageCount(p,a,b)
#define IDirectPlayX_GetMessageQueue(p,a,b,c,d,e) (p)->lpVtbl->GetMessageQueue(p,a,b,c,d,e)
#define IDirectPlayX_GetGroupData(p,a,b,c,d) (p)->lpVtbl->GetGroupData(p,a,b,c,d)
#define IDirectPlayX_GetGroupName(p,a,b,c) (p)->lpVtbl->GetGroupName(p,a,b,c)
#define IDirectPlayX_GetPlayerAddress(p,a,b,c) (p)->lpVtbl->GetPlayerAddress(p,a,b,c)
#define IDirectPlayX_GetPlayerCaps(p,a,b,c) (p)->lpVtbl->GetPlayerCaps(p,a,b,c)
#define IDirectPlayX_GetPlayerData(p,a,b,c,d) (p)->lpVtbl->GetPlayerData(p,a,b,c,d)
#define IDirectPlayX_GetPlayerName(p,a,b,c) (p)->lpVtbl->GetPlayerName(p,a,b,c)
#define IDirectPlayX_GetSessionDesc(p,a,b) (p)->lpVtbl->GetSessionDesc(p,a,b)
#define IDirectPlayX_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
#define IDirectPlayX_Open(p,a,b) (p)->lpVtbl->Open(p,a,b)
#define IDirectPlayX_Receive(p,a,b,c,d,e) (p)->lpVtbl->Receive(p,a,b,c,d,e)
#define IDirectPlayX_Send(p,a,b,c,d,e) (p)->lpVtbl->Send(p,a,b,c,d,e)
#define IDirectPlayX_SendEx(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->SendEx(p,a,b,c,d,e,f,g,h,i)
#define IDirectPlayX_SetGroupData(p,a,b,c,d) (p)->lpVtbl->SetGroupData(p,a,b,c,d)
#define IDirectPlayX_SetGroupName(p,a,b,c) (p)->lpVtbl->SetGroupName(p,a,b,c)
#define IDirectPlayX_SetPlayerData(p,a,b,c,d) (p)->lpVtbl->SetPlayerData(p,a,b,c,d)
#define IDirectPlayX_SetPlayerName(p,a,b,c) (p)->lpVtbl->SetPlayerName(p,a,b,c)
#define IDirectPlayX_SetSessionDesc(p,a,b) (p)->lpVtbl->SetSessionDesc(p,a,b)
#define IDirectPlayX_AddGroupToGroup(p,a,b) (p)->lpVtbl->AddGroupToGroup(p,a,b)
#define IDirectPlayX_CreateGroupInGroup(p,a,b,c,d,e,f) (p)->lpVtbl->CreateGroupInGroup(p,a,b,c,d,e,f)
#define IDirectPlayX_DeleteGroupFromGroup(p,a,b) (p)->lpVtbl->DeleteGroupFromGroup(p,a,b)
#define IDirectPlayX_EnumConnections(p,a,b,c,d) (p)->lpVtbl->EnumConnections(p,a,b,c,d)
#define IDirectPlayX_EnumGroupsInGroup(p,a,b,c,d,e) (p)->lpVtbl->EnumGroupsInGroup(p,a,b,c,d,e)
#define IDirectPlayX_GetGroupConnectionSettings(p,a,b,c,d) (p)->lpVtbl->GetGroupConnectionSettings(p,a,b,c,d)
#define IDirectPlayX_InitializeConnection(p,a,b) (p)->lpVtbl->InitializeConnection(p,a,b)
#define IDirectPlayX_SecureOpen(p,a,b,c,d) (p)->lpVtbl->SecureOpen(p,a,b,c,d)
#define IDirectPlayX_SendChatMessage(p,a,b,c,d) (p)->lpVtbl->SendChatMessage(p,a,b,c,d)
#define IDirectPlayX_SetGroupConnectionSettings(p,a,b,c) (p)->lpVtbl->SetGroupConnectionSettings(p,a,b,c)
#define IDirectPlayX_StartSession(p,a,b) (p)->lpVtbl->StartSession(p,a,b)
#define IDirectPlayX_GetGroupFlags(p,a,b) (p)->lpVtbl->GetGroupFlags(p,a,b)
#define IDirectPlayX_GetGroupParent(p,a,b) (p)->lpVtbl->GetGroupParent(p,a,b)
#define IDirectPlayX_GetPlayerAccount(p,a,b,c,d) (p)->lpVtbl->GetPlayerAccount(p,a,b,c,d)
#define IDirectPlayX_GetPlayerFlags(p,a,b) (p)->lpVtbl->GetPlayerFlags(p,a,b)
#define IDirectPlayX_GetGroupOwner(p,a,b) (p)->lpVtbl->GetGroupOwner(p,a,b)
#define IDirectPlayX_SetGroupOwner(p,a,b) (p)->lpVtbl->SetGroupOwner(p,a,b)
#else /* C++ */
#define IDirectPlayX_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirectPlayX_AddRef(p) (p)->AddRef()
#define IDirectPlayX_Release(p) (p)->Release()
#define IDirectPlayX_AddPlayerToGroup(p,a,b) (p)->AddPlayerToGroup(a,b)
#define IDirectPlayX_CancelMessage(p,a,b) (p)->CancelMessage(a,b)
#define IDirectPlayX_CancelPriority(p,a,b,c) (p)->CancelPriority(a,b,c)
#define IDirectPlayX_Close(p) (p)->Close()
#define IDirectPlayX_CreateGroup(p,a,b,c,d,e) (p)->CreateGroup(a,b,c,d,e)
#define IDirectPlayX_CreatePlayer(p,a,b,c,d,e,f) (p)->CreatePlayer(a,b,c,d,e,f)
#define IDirectPlayX_DeletePlayerFromGroup(p,a,b) (p)->DeletePlayerFromGroup(a,b)
#define IDirectPlayX_DestroyGroup(p,a) (p)->DestroyGroup(a)
#define IDirectPlayX_DestroyPlayer(p,a) (p)->DestroyPlayer(a)
#define IDirectPlayX_EnumGroupPlayers(p,a,b,c,d,e) (p)->EnumGroupPlayers(a,b,c,d,e)
#define IDirectPlayX_EnumGroups(p,a,b,c,d) (p)->EnumGroups(a,b,c,d)
#define IDirectPlayX_EnumPlayers(p,a,b,c,d) (p)->EnumPlayers(a,b,c,d)
#define IDirectPlayX_EnumSessions(p,a,b,c,d,e) (p)->EnumSessions(a,b,c,d,e)
#define IDirectPlayX_GetCaps(p,a,b) (p)->GetCaps(a,b)
#define IDirectPlayX_GetMessageCount(p,a,b) (p)->GetMessageCount(a,b)
#define IDirectPlayX_GetMessageQueue(p,a,b,c,d,e) (p)->GetMessageQueue(a,b,c,d,e)
#define IDirectPlayX_GetGroupData(p,a,b,c,d) (p)->GetGroupData(a,b,c,d)
#define IDirectPlayX_GetGroupName(p,a,b,c) (p)->GetGroupName(a,b,c)
#define IDirectPlayX_GetPlayerAddress(p,a,b,c) (p)->GetPlayerAddress(a,b,c)
#define IDirectPlayX_GetPlayerCaps(p,a,b,c) (p)->GetPlayerCaps(a,b,c)
#define IDirectPlayX_GetPlayerData(p,a,b,c,d) (p)->GetPlayerData(a,b,c,d)
#define IDirectPlayX_GetPlayerName(p,a,b,c) (p)->GetPlayerName(a,b,c)
#define IDirectPlayX_GetSessionDesc(p,a,b) (p)->GetSessionDesc(a,b)
#define IDirectPlayX_Initialize(p,a) (p)->Initialize(a)
#define IDirectPlayX_Open(p,a,b) (p)->Open(a,b)
#define IDirectPlayX_Receive(p,a,b,c,d,e) (p)->Receive(a,b,c,d,e)
#define IDirectPlayX_Send(p,a,b,c,d,e) (p)->Send(a,b,c,d,e)
#define IDirectPlayX_SendEx(p,a,b,c,d,e,f,g,h,i) (p)->SendEx(a,b,c,d,e,f,g,h,i)
#define IDirectPlayX_SetGroupData(p,a,b,c,d) (p)->SetGroupData(a,b,c,d)
#define IDirectPlayX_SetGroupName(p,a,b,c) (p)->SetGroupName(a,b,c)
#define IDirectPlayX_SetPlayerData(p,a,b,c,d) (p)->SetPlayerData(a,b,c,d)
#define IDirectPlayX_SetPlayerName(p,a,b,c) (p)->SetPlayerName(a,b,c)
#define IDirectPlayX_SetSessionDesc(p,a,b) (p)->SetSessionDesc(a,b)
#define IDirectPlayX_AddGroupToGroup(p,a,b) (p)->AddGroupToGroup(a,b)
#define IDirectPlayX_CreateGroupInGroup(p,a,b,c,d,e,f) (p)->CreateGroupInGroup(a,b,c,d,e,f)
#define IDirectPlayX_DeleteGroupFromGroup(p,a,b) (p)->DeleteGroupFromGroup(a,b)
#define IDirectPlayX_EnumConnections(p,a,b,c,d) (p)->EnumConnections(a,b,c,d)
#define IDirectPlayX_EnumGroupsInGroup(p,a,b,c,d,e) (p)->EnumGroupsInGroup(a,b,c,d,e)
#define IDirectPlayX_GetGroupConnectionSettings(p,a,b,c,d) (p)->GetGroupConnectionSettings(a,b,c,d)
#define IDirectPlayX_InitializeConnection(p,a,b) (p)->InitializeConnection(a,b)
#define IDirectPlayX_SecureOpen(p,a,b,c,d) (p)->SecureOpen(a,b,c,d)
#define IDirectPlayX_SendChatMessage(p,a,b,c,d) (p)->SendChatMessage(a,b,c,d)
#define IDirectPlayX_SetGroupConnectionSettings(p,a,b,c) (p)->SetGroupConnectionSettings(a,b,c)
#define IDirectPlayX_StartSession(p,a,b) (p)->StartSession(a,b)
#define IDirectPlayX_GetGroupFlags(p,a,b) (p)->GetGroupFlags(a,b)
#define IDirectPlayX_GetGroupParent(p,a,b) (p)->GetGroupParent(a,b)
#define IDirectPlayX_GetPlayerAccount(p,a,b,c,d) (p)->GetPlayerAccount(a,b,c,d)
#define IDirectPlayX_GetPlayerFlags(p,a,b) (p)->GetPlayerFlags(a,b)
#define IDirectPlayX_GetGroupOwner(p,a,b) (p)->GetGroupOwner(a,b)
#define IDirectPlayX_SetGroupOwner(p,a,b) (p)->SetGroupOwner(a,b)
#endif
/****************************************************************************
*
* EnumConnections API flags
*
****************************************************************************/
/*
* Enumerate Service Providers
*/
#define DPCONNECTION_DIRECTPLAY 0x00000001
/*
* Enumerate Lobby Providers
*/
#define DPCONNECTION_DIRECTPLAYLOBBY 0x00000002
/****************************************************************************
*
* EnumPlayers API flags
*
****************************************************************************/
/*
* Enumerate all players in the current session
*/
#define DPENUMPLAYERS_ALL 0x00000000
#define DPENUMGROUPS_ALL DPENUMPLAYERS_ALL
/*
* Enumerate only local (created by this application) players
* or groups
*/
#define DPENUMPLAYERS_LOCAL 0x00000008
#define DPENUMGROUPS_LOCAL DPENUMPLAYERS_LOCAL
/*
* Enumerate only remote (non-local) players
* or groups
*/
#define DPENUMPLAYERS_REMOTE 0x00000010
#define DPENUMGROUPS_REMOTE DPENUMPLAYERS_REMOTE
/*
* Enumerate groups along with the players
*/
#define DPENUMPLAYERS_GROUP 0x00000020
/*
* Enumerate players or groups in another session
* (must supply lpguidInstance)
*/
#define DPENUMPLAYERS_SESSION 0x00000080
#define DPENUMGROUPS_SESSION DPENUMPLAYERS_SESSION
/*
* Enumerate server players
*/
#define DPENUMPLAYERS_SERVERPLAYER 0x00000100
/*
* Enumerate spectator players
*/
#define DPENUMPLAYERS_SPECTATOR 0x00000200
/*
* Enumerate shortcut groups
*/
#define DPENUMGROUPS_SHORTCUT 0x00000400
/*
* Enumerate staging area groups
*/
#define DPENUMGROUPS_STAGINGAREA 0x00000800
/*
* Enumerate hidden groups
*/
#define DPENUMGROUPS_HIDDEN 0x00001000
/*
* Enumerate the group's owner
*/
#define DPENUMPLAYERS_OWNER 0x00002000
/****************************************************************************
*
* CreatePlayer API flags
*
****************************************************************************/
/*
* This flag indicates that this player should be designated
* the server player. The app should specify this at CreatePlayer.
*/
#define DPPLAYER_SERVERPLAYER DPENUMPLAYERS_SERVERPLAYER
/*
* This flag indicates that this player should be designated
* a spectator. The app should specify this at CreatePlayer.
*/
#define DPPLAYER_SPECTATOR DPENUMPLAYERS_SPECTATOR
/*
* This flag indicates that this player was created locally.
* (returned from GetPlayerFlags)
*/
#define DPPLAYER_LOCAL DPENUMPLAYERS_LOCAL
/*
* This flag indicates that this player is the group's owner
* (Only returned in EnumGroupPlayers)
*/
#define DPPLAYER_OWNER DPENUMPLAYERS_OWNER
/****************************************************************************
*
* CreateGroup API flags
*
****************************************************************************/
/*
* This flag indicates that the StartSession can be called on the group.
* The app should specify this at CreateGroup, or CreateGroupInGroup.
*/
#define DPGROUP_STAGINGAREA DPENUMGROUPS_STAGINGAREA
/*
* This flag indicates that this group was created locally.
* (returned from GetGroupFlags)
*/
#define DPGROUP_LOCAL DPENUMGROUPS_LOCAL
/*
* This flag indicates that this group was created hidden.
*/
#define DPGROUP_HIDDEN DPENUMGROUPS_HIDDEN
/****************************************************************************
*
* EnumSessions API flags
*
****************************************************************************/
/*
* Enumerate sessions which can be joined
*/
#define DPENUMSESSIONS_AVAILABLE 0x00000001
/*
* Enumerate all sessions even if they can't be joined.
*/
#define DPENUMSESSIONS_ALL 0x00000002
/*
* Start an asynchronous enum sessions
*/
#define DPENUMSESSIONS_ASYNC 0x00000010
/*
* Stop an asynchronous enum sessions
*/
#define DPENUMSESSIONS_STOPASYNC 0x00000020
/*
* Enumerate sessions even if they require a password
*/
#define DPENUMSESSIONS_PASSWORDREQUIRED 0x00000040
/*
* Return status about progress of enumeration instead of
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -