|
|
/*==========================================================================;
* * 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__
|