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