You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
160 lines
7.0 KiB
160 lines
7.0 KiB
/*==========================================================================;
|
|
*
|
|
* Copyright (C) 1996-1997 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
* File: dplobbyi.h
|
|
* Content: DirectPlayLobby internal include file
|
|
*
|
|
* History:
|
|
* Date By Reason
|
|
* =========== ======= ==========
|
|
* 2/25/97 myronth Created it
|
|
* 2/26/97 myronth #ifdef'd out DPASYNCDATA stuff (removed dependency)
|
|
* 3/12/97 myronth Added Connection & Session Management stuff plus
|
|
* a few forward declarations for internal objects
|
|
* 3/17/97 myronth Create/DestroyGroup/Player
|
|
* 3/20/97 myronth AddPlayerToGroup, DeletePlayerFromGroup
|
|
* 3/21/97 myronth SetGroup/PlayerName, Get/SetGroup/PlayerData
|
|
* 3/25/97 kipo EnumConnections takes a const *GUID now
|
|
* 3/31/97 myronth Send
|
|
* 4/10/97 myronth GetCaps, GetPlayerCaps
|
|
* 5/8/97 myronth Subgroup functions, GroupConnSettings, StartSession,
|
|
* Purged dead code
|
|
* 5/13/97 myronth Pass credentials to PRV_Open, pass them on to the LP
|
|
* 5/17/97 myronth SendChatMessage
|
|
* 8/19/97 myronth More prototypes for sending standard lobby messages
|
|
* 8/19/97 myronth Removed prototypes for dead functions
|
|
* 9/29/97 myronth Added PRV_ConvertDPLCONNECTIONToAnsiInPlace prototype
|
|
* 10/29/97 myronth Added group owner ID to create group methods, exposed
|
|
* map table functions, exposed group owner methods
|
|
* 11/5/97 myronth Expose lobby ID's as DPID's in lobby sessions
|
|
* 11/13/97 myronth Added functions for asynchronous Connect (#12541)
|
|
* 11/20/97 myronth Made EnumConnections & DirectPlayEnumerate
|
|
* drop the lock before calling the callback (#15208)
|
|
* 1/20/98 myronth Moved PRV_SendStandardSystemMessage into this file
|
|
***************************************************************************/
|
|
#ifndef __DPLOBBYI_INCLUDED__
|
|
#define __DPLOBBYI_INCLUDED__
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
//--------------------------------------------------------------------------
|
|
//
|
|
// Definitions
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
#ifndef DPLAPI
|
|
#define DPLAPI WINAPI
|
|
#endif
|
|
|
|
typedef struct DPLOBBYI_DPLOBJECT * LPDPLOBBYI_DPLOBJECT;
|
|
typedef struct LSPNODE * LPLSPNODE;
|
|
|
|
#define DPLOBBYPR_GAMEID 0
|
|
|
|
// Forward declarations needed because of the include file order in DPlay
|
|
typedef struct _DPLAYI_DPLAY * LPDPLAYI_DPLAY;
|
|
|
|
//--------------------------------------------------------------------------
|
|
//
|
|
// Globals
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
extern LPLSPNODE glpLSPHead; // In dplenum.c
|
|
|
|
//--------------------------------------------------------------------------
|
|
//
|
|
// Prototypes
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
// create.c
|
|
extern HRESULT PRV_AllocateLobbyObject(LPDPLAYI_DPLAY, LPDPLOBBYI_DPLOBJECT *);
|
|
|
|
// dplenum.c
|
|
extern void PRV_FreeLSPList(LPLSPNODE);
|
|
extern HRESULT PRV_EnumConnections(LPCGUID, LPDPENUMCONNECTIONSCALLBACK,
|
|
LPVOID, DWORD, BOOL);
|
|
|
|
// dplobby.c
|
|
extern HRESULT DPLAPI PRV_GetCaps(LPDPLOBBYI_DPLOBJECT, DWORD, LPDPCAPS);
|
|
extern BOOL PRV_GetConnectPointers(LPDIRECTPLAYLOBBY, LPDIRECTPLAY2 *, LPDPLCONNECTION *);
|
|
extern void PRV_SaveConnectPointers(LPDIRECTPLAYLOBBY, LPDIRECTPLAY2, LPDPLCONNECTION);
|
|
extern BOOL PRV_IsAsyncConnectOn(LPDIRECTPLAYLOBBY);
|
|
void PRV_TurnAsyncConnectOn(LPDIRECTPLAYLOBBY);
|
|
void PRV_TurnAsyncConnectOff(LPDIRECTPLAYLOBBY);
|
|
|
|
// dplobbya.c
|
|
extern HRESULT DPLAPI DPL_A_GetGroupConnectionSettings(LPDIRECTPLAY,
|
|
DWORD, DPID, LPVOID, LPDWORD);
|
|
extern HRESULT DPLAPI DPL_A_SetGroupConnectionSettings(LPDIRECTPLAY,
|
|
DWORD, DPID, LPDPLCONNECTION);
|
|
|
|
// dplpack.c
|
|
extern void PRV_FixupDPLCONNECTIONPointers(LPDPLCONNECTION);
|
|
extern HRESULT PRV_ConvertDPLCONNECTIONToAnsiInPlace(LPDPLCONNECTION, LPDWORD, DWORD);
|
|
|
|
// dplshare.c
|
|
extern HRESULT PRV_SendStandardSystemMessage(LPDIRECTPLAYLOBBY, DWORD, DWORD);
|
|
|
|
// dplunk.c
|
|
extern HRESULT PRV_DestroyDPLobby(LPDPLOBBYI_DPLOBJECT);
|
|
extern void PRV_FreeAllLobbyObjects(LPDPLOBBYI_DPLOBJECT);
|
|
|
|
// group.c
|
|
extern HRESULT DPLAPI PRV_AddGroupToGroup(LPDPLOBBYI_DPLOBJECT, DPID, DPID);
|
|
extern HRESULT DPLAPI PRV_AddPlayerToGroup(LPDPLOBBYI_DPLOBJECT, DPID, DPID);
|
|
extern HRESULT DPLAPI PRV_CreateGroup(LPDPLOBBYI_DPLOBJECT,
|
|
LPDPID, LPDPNAME, LPVOID, DWORD, DWORD, DPID);
|
|
extern HRESULT DPLAPI PRV_CreateGroupInGroup(LPDPLOBBYI_DPLOBJECT, DPID,
|
|
LPDPID, LPDPNAME, LPVOID, DWORD, DWORD, DPID);
|
|
extern HRESULT DPLAPI PRV_DeleteGroupFromGroup(LPDPLOBBYI_DPLOBJECT, DPID, DPID);
|
|
extern HRESULT DPLAPI PRV_DeletePlayerFromGroup(LPDPLOBBYI_DPLOBJECT, DPID, DPID);
|
|
extern HRESULT DPLAPI PRV_DestroyGroup(LPDPLOBBYI_DPLOBJECT, DPID);
|
|
extern HRESULT DPLAPI DPL_GetGroupConnectionSettings(LPDIRECTPLAY, DWORD,
|
|
DPID, LPVOID, LPDWORD);
|
|
extern HRESULT DPLAPI PRV_GetGroupData(LPDPLOBBYI_DPLOBJECT, DPID, LPVOID, LPDWORD);
|
|
extern HRESULT DPLAPI DPL_SetGroupConnectionSettings(LPDIRECTPLAY, DWORD,
|
|
DPID, LPDPLCONNECTION);
|
|
extern HRESULT DPLAPI DPL_GetGroupOwner(LPDIRECTPLAY, DPID, LPDPID);
|
|
extern HRESULT DPLAPI PRV_SetGroupData(LPDPLOBBYI_DPLOBJECT, DPID, LPVOID, DWORD, DWORD);
|
|
extern HRESULT DPLAPI PRV_SetGroupName(LPDPLOBBYI_DPLOBJECT, DPID, LPDPNAME, DWORD);
|
|
extern HRESULT DPLAPI DPL_SetGroupOwner(LPDIRECTPLAY, DPID, DPID);
|
|
extern HRESULT DPLAPI DPL_StartSession(LPDIRECTPLAY, DWORD, DPID);
|
|
|
|
// player.c
|
|
extern HRESULT DPLAPI PRV_CreatePlayer(LPDPLOBBYI_DPLOBJECT,
|
|
LPDPID, LPDPNAME, HANDLE, LPVOID, DWORD, DWORD);
|
|
extern HRESULT DPLAPI PRV_DestroyPlayer(LPDPLOBBYI_DPLOBJECT, DPID);
|
|
extern HRESULT DPLAPI PRV_GetPlayerCaps(LPDPLOBBYI_DPLOBJECT, DWORD, DPID, LPDPCAPS);
|
|
extern HRESULT DPLAPI PRV_GetPlayerData(LPDPLOBBYI_DPLOBJECT, DPID, LPVOID, LPDWORD);
|
|
extern HRESULT DPLAPI PRV_Send(LPDPLOBBYI_DPLOBJECT, DPID, DPID, DWORD, LPVOID, DWORD);
|
|
extern HRESULT DPLAPI PRV_SendChatMessage(LPDPLOBBYI_DPLOBJECT, DPID, DPID, DWORD, LPDPCHAT);
|
|
extern HRESULT DPLAPI PRV_SetPlayerData(LPDPLOBBYI_DPLOBJECT, DPID, LPVOID, DWORD, DWORD);
|
|
extern HRESULT DPLAPI PRV_SetPlayerName(LPDPLOBBYI_DPLOBJECT, DPID, LPDPNAME, DWORD);
|
|
extern BOOL PRV_GetDPIDByLobbyID(LPDPLOBBYI_DPLOBJECT, DWORD, DPID *);
|
|
extern BOOL PRV_GetLobbyIDByDPID(LPDPLOBBYI_DPLOBJECT, DPID, LPDWORD);
|
|
extern HRESULT PRV_AddMapIDNode(LPDPLOBBYI_DPLOBJECT, DWORD, DPID);
|
|
extern BOOL PRV_DeleteMapIDNode(LPDPLOBBYI_DPLOBJECT, DWORD);
|
|
|
|
// server.c
|
|
extern HRESULT PRV_LoadSP(LPDPLOBBYI_DPLOBJECT, LPGUID, LPVOID, DWORD);
|
|
extern BOOL FAR PASCAL PRV_FindLPGUIDInAddressCallback(REFGUID, DWORD,
|
|
LPCVOID, LPVOID);
|
|
|
|
// session.c
|
|
extern HRESULT DPLAPI PRV_Close(LPDPLOBBYI_DPLOBJECT);
|
|
extern HRESULT DPLAPI PRV_EnumSessions(LPDPLOBBYI_DPLOBJECT, LPDPSESSIONDESC2, DWORD, DWORD);
|
|
extern HRESULT DPLAPI PRV_GetSessionDesc(LPDPLOBBYI_DPLOBJECT);
|
|
extern HRESULT DPLAPI PRV_Open(LPDPLOBBYI_DPLOBJECT, LPDPSESSIONDESC2, DWORD, LPCDPCREDENTIALS);
|
|
extern HRESULT DPLAPI PRV_SetSessionDesc(LPDPLOBBYI_DPLOBJECT);
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
#endif // __DPLOBBYI_INCLUDED__
|