113 lines
4.3 KiB
C++
113 lines
4.3 KiB
C++
/*==========================================================================
|
|
*
|
|
* Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
* File: DPLobbyInt.h
|
|
* Content: DirectPlay Lobby Internal Header File
|
|
*@@BEGIN_MSINTERNAL
|
|
* History:
|
|
* Date By Reason
|
|
* ==== == ======
|
|
* 02/21/00 mjn Created
|
|
* 04/18/2000 rmt Added object param validation flag
|
|
* 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).
|
|
* rmt Added signature bytes
|
|
* 02/06/2001 rodtoll WINBUG #293871: DPLOBBY8: [IA64] Lobby launching a 64-bit
|
|
* app from 64-bit lobby launcher crashes with unaligned memory error.
|
|
* 06/16/2001 rodtoll WINBUG #416983 - RC1: World has full control to HKLM\Software\Microsoft\DirectPlay\Applications on Personal
|
|
* Implementing mirror of keys into HKCU. Algorithm is now:
|
|
* - Read of entries tries HKCU first, then HKLM
|
|
* - Enum of entires is combination of HKCU and HKLM entries with duplicates removed. HKCU takes priority.
|
|
* - Write of entries is HKLM and HKCU. (HKLM may fail, but is ignored).
|
|
*@@END_MSINTERNAL
|
|
*
|
|
***************************************************************************/
|
|
|
|
#ifndef __DPLOBBYINT_H__
|
|
#define __DPLOBBYINT_H__
|
|
|
|
|
|
//**********************************************************************
|
|
// Constant definitions
|
|
//**********************************************************************
|
|
|
|
#define TRY _try
|
|
#define EXCEPT(a) _except( a )
|
|
#define BREAKPOINT _asm { int 3 }
|
|
|
|
#define DPL_MSGQ_TIMEOUT_IDLE 1000
|
|
|
|
#define DPL_OBJECT_FLAG_LOBBIEDAPPLICATION 0x0001
|
|
#define DPL_OBJECT_FLAG_LOBBYCLIENT 0x0002
|
|
#define DPL_OBJECT_FLAG_PARAMVALIDATION 0x0004
|
|
#define DPL_OBJECT_FLAG_MULTICONNECT 0x0008
|
|
#define DPL_OBJECT_FLAG_LOOKINGFORLOBBYLAUNCH 0x0010
|
|
|
|
#define DPL_ID_STR_W L"DPLID="
|
|
#define DPL_ID_STR_A "DPLID="
|
|
|
|
#define DPL_NUM_APP_HANDLES 16
|
|
|
|
#define DPL_REGISTRY_READ_ACCESS (READ_CONTROL | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS)
|
|
|
|
//**********************************************************************
|
|
// Macro definitions
|
|
//**********************************************************************
|
|
|
|
//**********************************************************************
|
|
// Structure definitions
|
|
//**********************************************************************
|
|
|
|
// Forward declarations
|
|
|
|
class CMessageQueue;
|
|
|
|
#define DPLSIGNATURE_LOBBYOBJECT 'BOLL'
|
|
#define DPLSIGNATURE_LOBBYOBJECT_FREE 'BOL_'
|
|
|
|
typedef struct _DIRECTPLAYLOBBYOBJECT
|
|
{
|
|
DWORD dwSignature; // Signature
|
|
PVOID pvUserContext;
|
|
DWORD dwFlags;
|
|
DWORD dwPID; // PID of this process
|
|
CMessageQueue *pReceiveQueue;
|
|
HANDLESTRUCT hsHandles; // Handles
|
|
PFNDPNMESSAGEHANDLER pfnMessageHandler;
|
|
HANDLE hReceiveThread; // Handle to receive Msg Handler thread
|
|
HANDLE hConnectEvent; // Connection Event
|
|
HANDLE hLobbyLaunchConnectEvent; // Set if a lobby launch connection was succesful
|
|
LONG lLaunchCount; // Number of application launches
|
|
BOOL bIsUnicodePlatform; // Unicode (WinNT) or not (Win9x)
|
|
DPNHANDLE *phHandleBuffer; // Buffer of handles for idle process exit check
|
|
DWORD dwHandleBufferSize;
|
|
DPNHANDLE dpnhLaunchedConnection; // Launched connection
|
|
} DIRECTPLAYLOBBYOBJECT, *PDIRECTPLAYLOBBYOBJECT;
|
|
|
|
|
|
typedef struct _DPL_SHARED_CONNECT_BLOCK
|
|
{
|
|
DWORD dwPID;
|
|
} DPL_SHARED_CONNECT_BLOCK, *PDPL_SHARED_CONNECT_BLOCK;
|
|
|
|
|
|
//**********************************************************************
|
|
// Variable definitions
|
|
//**********************************************************************
|
|
|
|
|
|
//extern DWORD DnOsPlatformId;
|
|
|
|
|
|
//**********************************************************************
|
|
// Function prototypes
|
|
//**********************************************************************
|
|
|
|
|
|
#endif // __DPLOBBYINT_H__
|