windows-nt/Source/XPSP1/NT/multimedia/directx/dplay/dnet/lobby/dplapp.h
2020-09-26 16:20:57 +08:00

85 lines
3.3 KiB
C

/*==========================================================================
*
* Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
*
* File: DPLApp.h
* Content: DirectPlay Lobbied Application Header File
*@@BEGIN_MSINTERNAL
* History:
* Date By Reason
* ==== == ======
* 02/21/00 mjn Created
* 03/22/2000 jtk Changed interface names
* 04/25/2000 rmt Bug #s 33138, 33145, 33150
* 05/08/00 rmt Bug #34301 - Add flag to SetAppAvail to allow for multiple connects
* 06/15/00 rmt Bug #33617 - Must provide method for providing automatic launch of DirectPlay instances
* 07/08/2000 rmt Bug #38725 - Need to provide method to detect if app was lobby launched
* rmt Bug #38757 - Callback messages for connections may return AFTER WaitForConnection returns
* rmt Bug #38755 - No way to specify player name in Connection Settings
* rmt Bug #38758 - DPLOBBY8.H has incorrect comments
* rmt Bug #38783 - pvUserApplicationContext is only partially implemented
* rmt Added DPLHANDLE_ALLCONNECTIONS and dwFlags (reserved field to couple of funcs).
*@@END_MSINTERNAL
*
***************************************************************************/
#ifndef __DPLAPP_H__
#define __DPLAPP_H__
//**********************************************************************
// Constant definitions
//**********************************************************************
//**********************************************************************
// Macro definitions
//**********************************************************************
//**********************************************************************
// Structure definitions
//**********************************************************************
typedef struct _DIRECTPLAYLOBBYOBJECT DIRECTPLAYLOBBYOBJECT;
//**********************************************************************
// Variable definitions
//**********************************************************************
//**********************************************************************
// Constant definitions
//**********************************************************************
#define DPL_LOBBYLAUNCHED_CONNECT_TIMEOUT 4000
//
// VTable for lobbied application interface
//
extern IDirectPlay8LobbiedApplicationVtbl DPL_8LobbiedApplicationVtbl;
//**********************************************************************
// Function prototypes
//**********************************************************************
STDMETHODIMP DPL_RegisterProgram(IDirectPlay8LobbiedApplication *pInterface,
PDPL_PROGRAM_DESC pdplProgramDesc,
const DWORD dwFlags);
STDMETHODIMP DPL_UnRegisterProgram(IDirectPlay8LobbiedApplication *pInterface,
GUID *pguidApplication,
const DWORD dwFlags);
STDMETHODIMP DPL_SetAppAvailable(IDirectPlay8LobbiedApplication *pInterface, const BOOL fAvailable, const DWORD dwFlags );
STDMETHODIMP DPL_WaitForConnection(IDirectPlay8LobbiedApplication *pInterface,
const DWORD dwMilliseconds,
const DWORD dwFlags );
STDMETHODIMP DPL_UpdateStatus(IDirectPlay8LobbiedApplication *pInterface,
const DPNHANDLE hLobby,
const DWORD dwStatus,
const DWORD dwFlags );
HRESULT DPLAttemptLobbyConnection(DIRECTPLAYLOBBYOBJECT *const pdpLobbyObject);
#endif // __DPLAPP_H__