Leaked source code of windows server 2003
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.

124 lines
4.5 KiB

  1. /*==========================================================================
  2. *
  3. * Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
  4. *
  5. * File: DPLobbyInt.h
  6. * Content: DirectPlay Lobby Internal Header File
  7. *@@BEGIN_MSINTERNAL
  8. * History:
  9. * Date By Reason
  10. * ==== == ======
  11. * 02/21/00 mjn Created
  12. * 04/18/2000 rmt Added object param validation flag
  13. * 07/08/2000 rmt Bug #38725 - Need to provide method to detect if app was lobby launched
  14. * rmt Bug #38757 - Callback messages for connections may return AFTER WaitForConnection returns
  15. * rmt Bug #38755 - No way to specify player name in Connection Settings
  16. * rmt Bug #38758 - DPLOBBY8.H has incorrect comments
  17. * rmt Bug #38783 - pvUserApplicationContext is only partially implemented
  18. * rmt Added DPLHANDLE_ALLCONNECTIONS and dwFlags (reserved field to couple of funcs).
  19. * rmt Added signature bytes
  20. * 02/06/2001 rodtoll WINBUG #293871: DPLOBBY8: [IA64] Lobby launching a 64-bit
  21. * app from 64-bit lobby launcher crashes with unaligned memory error.
  22. * 06/16/2001 rodtoll WINBUG #416983 - RC1: World has full control to HKLM\Software\Microsoft\DirectPlay\Applications on Personal
  23. * Implementing mirror of keys into HKCU. Algorithm is now:
  24. * - Read of entries tries HKCU first, then HKLM
  25. * - Enum of entires is combination of HKCU and HKLM entries with duplicates removed. HKCU takes priority.
  26. * - Write of entries is HKLM and HKCU. (HKLM may fail, but is ignored).
  27. *@@END_MSINTERNAL
  28. *
  29. ***************************************************************************/
  30. #ifndef __DPLOBBYINT_H__
  31. #define __DPLOBBYINT_H__
  32. //**********************************************************************
  33. // Constant definitions
  34. //**********************************************************************
  35. #ifndef DPNBUILD_NOPARAMVAL
  36. #define TRY _try
  37. #define EXCEPT(a) _except( a )
  38. #endif // !DPNBUILD_NOPARAMVAL
  39. #define BREAKPOINT _asm { int 3 }
  40. #define DPL_MSGQ_TIMEOUT_IDLE 1000
  41. #define DPL_OBJECT_FLAG_LOBBIEDAPPLICATION 0x0001
  42. #define DPL_OBJECT_FLAG_LOBBYCLIENT 0x0002
  43. #define DPL_OBJECT_FLAG_PARAMVALIDATION 0x0004
  44. #define DPL_OBJECT_FLAG_MULTICONNECT 0x0008
  45. #define DPL_OBJECT_FLAG_LOOKINGFORLOBBYLAUNCH 0x0010
  46. #define DPL_OBJECT_FLAG_HANDLETABLE_INITED 0x0020
  47. #define DPL_OBJECT_FLAG_CRITSEC_INITED 0x0040
  48. #define DPL_ID_STR _T("DPLID=")
  49. #define DPL_ID_STR_W L"DPLID="
  50. #define DPL_NUM_APP_HANDLES 16
  51. #define DPL_REGISTRY_READ_ACCESS (READ_CONTROL | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS)
  52. //**********************************************************************
  53. // Macro definitions
  54. //**********************************************************************
  55. //**********************************************************************
  56. // Structure definitions
  57. //**********************************************************************
  58. // Forward declarations
  59. class CMessageQueue;
  60. #define DPLSIGNATURE_LOBBYOBJECT 'BOLL'
  61. #define DPLSIGNATURE_LOBBYOBJECT_FREE 'BOL_'
  62. typedef struct _DIRECTPLAYLOBBYOBJECT
  63. {
  64. DWORD dwSignature; // Signature
  65. PVOID pvUserContext;
  66. DWORD dwFlags;
  67. DWORD dwPID; // PID of this process
  68. CMessageQueue *pReceiveQueue;
  69. PFNDPNMESSAGEHANDLER pfnMessageHandler;
  70. DNHANDLE hReceiveThread; // Handle to receive Msg Handler thread
  71. DNHANDLE hConnectEvent; // Connection Event
  72. DNHANDLE hLobbyLaunchConnectEvent; // Set if a lobby launch connection was succesful
  73. LONG lLaunchCount; // Number of application launches
  74. DPNHANDLE dpnhLaunchedConnection; // Launched connection
  75. CHandleTable m_HandleTable;
  76. CBilink m_blConnections;
  77. DWORD m_dwConnectionCount;
  78. #ifndef DPNBUILD_ONLYONETHREAD
  79. DNCRITICAL_SECTION m_cs;
  80. #endif // !DPNBUILD_ONLYONETHREAD
  81. } DIRECTPLAYLOBBYOBJECT, *PDIRECTPLAYLOBBYOBJECT;
  82. typedef struct _DPL_SHARED_CONNECT_BLOCK
  83. {
  84. DWORD dwPID;
  85. } DPL_SHARED_CONNECT_BLOCK, *PDPL_SHARED_CONNECT_BLOCK;
  86. //**********************************************************************
  87. // Variable definitions
  88. //**********************************************************************
  89. //extern DWORD DnOsPlatformId;
  90. //**********************************************************************
  91. // Function prototypes
  92. //**********************************************************************
  93. #endif // __DPLOBBYINT_H__