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.

1512 lines
62 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1998 - 1999
  6. //
  7. // File: directxconst.idl
  8. //
  9. //--------------------------------------------------------------------------
  10. #ifdef VB_ONLY
  11. //
  12. // DirectPlayVoice
  13. //
  14. #define I_dxj_DirectPlayVoiceSetup DirectPlayVoiceTest8
  15. #define I_dxj_DirectPlayVoiceServer DirectPlayVoiceServer8
  16. #define I_dxj_DirectPlayVoiceClient DirectPlayVoiceClient8
  17. #define I_dxj_DPVoiceEvent DirectPlayVoiceEvent8
  18. //
  19. // DirectPlay8
  20. //
  21. #define I_dxj_DirectPlayPeer DirectPlay8Peer
  22. #define I_dxj_DirectPlayClient DirectPlay8Client
  23. #define I_dxj_DirectPlayServer DirectPlay8Server
  24. #define I_dxj_DirectPlayLobbyClient DirectPlay8LobbyClient
  25. #define I_dxj_DirectPlayLobbiedApplication DirectPlay8LobbiedApplication
  26. #define I_dxj_DirectPlayEvent DirectPlay8Event
  27. #define I_dxj_DirectPlayLobbyEvent DirectPlay8LobbyEvent
  28. //Addresses
  29. #define I_dxj_DirectPlayAddress DirectPlay8Address
  30. //
  31. // DirectplayVoice structs
  32. //
  33. #define DVMESSAGETYPE_CDESC DVMESSAGETYPE
  34. #define DVCAPS_CDESC DVCAPS
  35. #define DVCOMPRESSIONINFO_CDESC DVCOMPRESSIONINFO
  36. #define DVSESSIONDESC_CDESC DVSESSIONDESC
  37. #define DVCLIENTCONFIG_CDESC DVCLIENTCONFIG
  38. #define DVSOUNDDEVICECONFIG_CDESC DVSOUNDDEVICECONFIG
  39. //
  40. // Directplay structs
  41. //
  42. #define DPN_APPLICATION_DESC_CDESC DPN_APPLICATION_DESC
  43. #define DPNCAPS_CDESC DPN_CAPS
  44. #define DPN_SERVICE_PROVIDER_INFO_CDESC DPN_SERVICE_PROVIDER_INFO
  45. #define DPN_PLAYER_INFO_CDESC DPN_PLAYER_INFO
  46. #define DPN_GROUP_INFO_CDESC DPN_GROUP_INFO
  47. #define DPN_SERVICE_PROVIDER_INFO_CDESC DPN_SERVICE_PROVIDER_INFO
  48. #define DPN_SP_CAPS_CDESC DPN_SP_CAPS
  49. #define DPL_APPLICATION_INFO_CDESC DPL_APPLICATION_INFO
  50. #define DPL_PROGRAM_DESC_CDESC DPL_PROGRAM_DESC
  51. #define DPL_CONNECT_INFO_CDESC DPL_CONNECT_INFO
  52. #define DPL_MESSAGE_RECEIVE_CDESC DPL_MESSAGE_RECEIVE
  53. #define DPL_MESSAGE_CONNECT_CDESC DPL_MESSAGE_CONNECT
  54. #define DPL_CONNECTION_SETTINGS_CDESC DPL_CONNECTION_SETTINGS
  55. #define DPL_MESSAGE_CONNECTION_SETTINGS_CDESC DPL_MESSAGE_CONNECTION_SETTINGS
  56. //
  57. // DirectPlay MSG structs
  58. //
  59. #define DPNMSG_TERMINATE_SESSION_CDESC DPNMSG_TERMINATE_SESSION
  60. #define DPNMSG_INDICATE_CONNECT_CDESC DPNMSG_INDICATE_CONNECT
  61. #define DPNMSG_CONNECT_COMPLETE_CDESC DPNMSG_CONNECT_COMPLETE
  62. #define DPNMSG_SEND_COMPLETE_CDESC DPNMSG_SEND_COMPLETE
  63. #define DPNMSG_RECEIVE_CDESC DPNMSG_RECEIVE
  64. #define DPNMSG_ASYNC_OP_COMPLETE_CDESC DPNMSG_ASYNC_OP_COMPLETE
  65. #define DPNMSG_ENUM_HOSTS_QUERY_CDESC DPNMSG_ENUM_HOSTS_QUERY
  66. #define DPNMSG_ENUM_HOSTS_RESPONSE_CDESC DPNMSG_ENUM_HOSTS_RESPONSE
  67. #define DPN_CONNECTION_INFO_CDESC DPN_CONNECTION_INFO
  68. #endif
  69. #ifdef C_ONLY
  70. #define CONST_DVSOUNDEFFECT LONG
  71. #define CONST_DVCLIENTCONFIGENUM LONG
  72. #define CONST_DVSESSION LONG
  73. #define CONST_DVCOMPRESSIONCAPS LONG
  74. #define CONST_DVNOTIFY LONG
  75. #define CONST_DVCAPSENUM LONG
  76. #define CONST_DVFLAGS LONG
  77. #define CONST_DVTHRESHOLD LONG
  78. #define CONST_DVBUFFERQUALITY LONG
  79. #define CONST_DVBUFFERAGGRESSIVENESS LONG
  80. #define CONST_DVSESSIONTYPE LONG
  81. #define CONST_DVPLAYBACKVOLUME LONG
  82. #define CONST_DVMESSAGE LONG
  83. #define CONST_DVERR LONG
  84. #define CONST_DPNENUMCLIENTGROUPFLAGS LONG
  85. #define CONST_DPLCONNECT LONG
  86. #define CONST_DPLSESSION LONG
  87. #define CONST_DPNPLAYINFOFLAGS LONG
  88. #define CONST_DPNINFO LONG
  89. #define CONST_DPNGROUPINFOFLAGS LONG
  90. #define CONST_DPNCANCELFLAGS LONG
  91. #define CONST_DVSOUNDEFFECT LONG
  92. #define CONST_DPNSENDFLAGS LONG
  93. #define CONST_DPLAVAILABLE LONG
  94. #define CONST_DPNSESSIONFLAGS LONG
  95. #define CONST_DPNOPERATIONS LONG
  96. #define CONST_DPLCONNECTSETTINGS LONG
  97. #define CONST_DPNGETSENDQUEUEINFO LONG
  98. #endif
  99. //
  100. // DirectPlay & DirectPlayLobby
  101. //
  102. interface I_dxj_DirectPlayPeer;
  103. interface I_dxj_DirectPlayClient;
  104. interface I_dxj_DirectPlayServer;
  105. interface I_dxj_DirectPlayLobbyClient;
  106. interface I_dxj_DirectPlayLobbiedApplication;
  107. //
  108. // DirectPlayAdress
  109. //
  110. interface I_dxj_DirectPlayAddress;
  111. //
  112. // DirectPlayVoice (Server/Client/Setup)
  113. //
  114. interface I_dxj_DirectPlayVoiceClient;
  115. interface I_dxj_DirectPlayVoiceServer;
  116. interface I_dxj_DirectPlayVoiceSetup;
  117. //
  118. // DirectPlay Events
  119. //
  120. interface I_dxj_DPVoiceEvent;
  121. interface I_dxj_DirectPlayEvent;
  122. interface I_dxj_DirectPlayLobbyEvent;
  123. #ifdef VB_ONLY
  124. #define DPL_MSGID_LOBBY 0x8000
  125. [helpcontext(79390)]
  126. typedef enum CONST_DPNDESTROYPLAYERREASON
  127. {
  128. DPNDESTROYPLAYERREASON_NORMAL = 0x0001,
  129. DPNDESTROYPLAYERREASON_CONNECTIONLOST = 0x0002,
  130. DPNDESTROYPLAYERREASON_SESSIONTERMINATED = 0x0003,
  131. DPNDESTROYPLAYERREASON_HOSTDESTROYEDPLAYER = 0x0004
  132. } CONST_DPNDESTROYPLAYERREASON;
  133. [helpcontext(79391)]
  134. typedef enum CONST_DPNDESTROYGROUPREASON
  135. {
  136. DPNDESTROYGROUPREASON_NORMAL = 0x0001,
  137. DPNDESTROYGROUPREASON_AUTODESTRUCTED = 0x0002,
  138. DPNDESTROYGROUPREASON_SESSIONTERMINATED = 0x0003
  139. } CONST_DPNDESTROYGROUPREASON;
  140. [helpcontext(79490)]
  141. typedef enum CONST_DPLHANDLE
  142. {
  143. DPLHANDLE_ALLCONNECTIONS = 0xFFFFFFFF
  144. } CONST_DPLHANDLE;
  145. [helpcontext(79491)]
  146. typedef enum CONST_DPNGETSENDQUEUEINFO
  147. {
  148. DPNGETSENDQUEUEINFO_PRIORITY_NORMAL = 0x0001,
  149. DPNGETSENDQUEUEINFO_PRIORITY_HIGH = 0x0002,
  150. DPNGETSENDQUEUEINFO_PRIORITY_LOW = 0x0004
  151. } CONST_DPNGETSENDQUEUEINFO;
  152. [helpcontext(79392)]
  153. typedef enum CONST_DPLAVAILABLE
  154. {
  155. DPLAVAILABLE_ALLOWMULTIPLECONNECT = 0x0001
  156. } CONST_DPLAVAILABLE;
  157. [helpcontext(78390)]
  158. typedef enum CONST_DPLAYBUFSIZE {
  159. SIZE_BYTE = 1,
  160. SIZE_LONG = 4,
  161. SIZE_INTEGER = 2,
  162. SIZE_BOOLEAN = 2,
  163. SIZE_SINGLE = 4,
  164. SIZE_DOUBLE = 8,
  165. SIZE_CURRENCY = 8,
  166. SIZE_DECIMAL = 14,
  167. SIZE_DATE = 8,
  168. } CONST_DPLAYBUFSIZE;
  169. [helpcontext(78406)]
  170. typedef enum CONST_DPNSPCAPS {
  171. DPNSPCAPS_SUPPORTSDPNSRV = 0x0001,
  172. DPNSPCAPS_SUPPORTSBROADCAST = 0x0002,
  173. DPNSPCAPS_SUPPORTSALLADAPTERS = 0x0004
  174. } CONST_DPNSPCAPS;
  175. [helpcontext(78392)]
  176. typedef enum CONST_DPLMSG {
  177. DPL_MSGID_RECEIVE = (0x0001 | DPL_MSGID_LOBBY),
  178. DPL_MSGID_CONNECT = (0x0002 | DPL_MSGID_LOBBY),
  179. DPL_MSGID_DISCONNECT = (0x0003 | DPL_MSGID_LOBBY),
  180. DPL_MSGID_SESSION_STATUS = (0x0004 | DPL_MSGID_LOBBY),
  181. DPL_MSGID_CONNECTION_SETTINGS = (0x0005 | DPL_MSGID_LOBBY)
  182. } CONST_DPLMSG;
  183. [helpcontext(78391)]
  184. typedef enum CONST_DPLCONNECT {
  185. DPLCONNECT_LAUNCHNEW = 0x0001,
  186. DPLCONNECT_LAUNCHNOTFOUND = 0x0002,
  187. } CONST_DPLCONNECT;
  188. [helpcontext(79395)]
  189. typedef enum CONST_DPLCONNECTSETTINGS {
  190. DPLCONNECTSETTINGS_HOST = 0x0001,
  191. } CONST_DPLCONNECTSETTINGS;
  192. [helpcontext(78393)]
  193. typedef enum CONST_DPLSESSION {
  194. DPLSESSION_CONNECTED = 0x0001,
  195. DPLSESSION_COULDNOTCONNECT = 0x0002,
  196. DPLSESSION_DISCONNECTED = 0x0003,
  197. DPLSESSION_TERMINATED = 0x0004,
  198. DPLSESSION_HOSTMIGRATED = 0x0005,
  199. DPLSESSION_HOSTMIGRATEDHERE = 0x0006
  200. } CONST_DPLSESSION;
  201. [helpcontext(78408)]
  202. typedef enum CONST_DPNWAITTIME {
  203. INFINITE = 0xFFFFFFFF
  204. } CONST_DPNWAITTIME;
  205. [helpcontext(78399)]
  206. typedef enum CONST_DPNLOBBY {
  207. DPNLOBBY_REGISTER = 0x0001,
  208. DPNLOBBY_UNREGISTER = 0x0002
  209. } CONST_DPNLOBBY;
  210. #define E_FAIL 0x80000008
  211. #define E_POINTER 0x80004003
  212. #define E_PENDING 0x00000103
  213. [helpcontext(78396)]
  214. typedef enum CONST_DPNERROR {
  215. DPN_OK = 0,
  216. DPNSUCCESS_PENDING = E_PENDING,
  217. DPNERR_ABORTED = 0x80158030,
  218. DPNERR_ADDRESSING = 0x80158040,
  219. DPNERR_ALREADYCLOSING = 0x80158050,
  220. DPNERR_ALREADYCONNECTED = 0x80158060,
  221. DPNERR_ALREADYDISCONNECTING = 0x80158070,
  222. DPNERR_ALREADYINITIALIZED = 0x80158080,
  223. DPNERR_ALREADYREGISTERED = 0x80158090,
  224. DPNERR_BUFFERTOOSMALL = 0x80158100,
  225. DPNERR_CANNOTCANCEL = 0x80158110,
  226. DPNERR_CANTCREATEGROUP = 0x80158120,
  227. DPNERR_CANTCREATEPLAYER = 0x80158130,
  228. DPNERR_CANTLAUNCHAPPLICATION = 0x80158140,
  229. DPNERR_CONNECTING = 0x80158150,
  230. DPNERR_CONNECTIONLOST = 0x80158160,
  231. DPNERR_CONVERSION = 0x80158170,
  232. DPNERR_DATATOOLARGE = 0x80158175,
  233. DPNERR_DOESNOTEXIST = 0x80158180,
  234. DPNERR_DUPLICATECOMMAND = 0x80158190,
  235. DPNERR_ENDPOINTNOTRECEIVING = 0x80158200,
  236. DPNERR_ENUMQUERYTOOLARGE = 0x80158210,
  237. DPNERR_ENUMRESPONSETOOLARGE = 0x80158220,
  238. DPNERR_EXCEPTION = 0x80158230,
  239. DPNERR_GENERIC = E_FAIL,
  240. DPNERR_GROUPNOTEMPTY = 0x80158240,
  241. DPNERR_HOSTING = 0x80158250,
  242. DPNERR_HOSTREJECTEDCONNECTION = 0x80158260,
  243. DPNERR_HOSTTERMINATEDSESSION = 0x80158270,
  244. DPNERR_INCOMPLETEADDRESS = 0x80158280,
  245. DPNERR_INVALIDADDRESSFORMAT = 0x80158290,
  246. DPNERR_INVALIDAPPLICATION = 0x80158300,
  247. DPNERR_INVALIDCOMMAND = 0x80158310,
  248. DPNERR_INVALIDDEVICEADDRESS = 0x80158320,
  249. DPNERR_INVALIDENDPOINT = 0x80158330,
  250. DPNERR_INVALIDFLAGS = 0x80158340,
  251. DPNERR_INVALIDGROUP = 0x80158350,
  252. DPNERR_INVALIDHANDLE = 0x80158360,
  253. DPNERR_INVALIDHOSTADDRESS = 0x80158370,
  254. DPNERR_INVALIDINSTANCE = 0x80158380,
  255. DPNERR_INVALIDINTERFACE = 0x80158390,
  256. DPNERR_INVALIDOBJECT = 0x80158400,
  257. DPNERR_INVALIDPARAM = 5,
  258. DPNERR_INVALIDPASSWORD = 0x80158410,
  259. DPNERR_INVALIDPLAYER = 0x80158420,
  260. DPNERR_INVALIDPOINTER = E_POINTER,
  261. DPNERR_INVALIDPRIORITY = 0x80158430,
  262. DPNERR_INVALIDSTRING = 0x80158440,
  263. DPNERR_INVALIDURL = 0x80158450,
  264. DPNERR_INVALIDVERSION = 0x80158460,
  265. DPNERR_NOCAPS = 0x80158470,
  266. DPNERR_NOCONNECTION = 0x80158480,
  267. DPNERR_NOHOSTPLAYER = 0x80158490,
  268. DPNERR_NOINTERFACE = 430,
  269. DPNERR_NOMOREADDRESSCOMPONENTS = 0x80158500,
  270. DPNERR_NORESPONSE = 0x80158510,
  271. DPNERR_NOTALLOWED = 0x80158520,
  272. DPNERR_NOTHOST = 0x80158530,
  273. DPNERR_NOTREADY = 0x80158540,
  274. DPNERR_NOTREGISTERED = 0x80158550,
  275. DPNERR_OUTOFMEMORY = 7,
  276. DPNERR_PENDING = E_PENDING,
  277. DPNERR_PLAYERALREADYINGROUP = 0x80158560,
  278. DPNERR_PLAYERLOST = 0x80158570,
  279. DPNERR_PLAYERNOTINGROUP = 0x80158580,
  280. DPNERR_PLAYERNOTREACHABLE = 0x80158590,
  281. DPNERR_SENDTOOLARGE = 0x80158600,
  282. DPNERR_SESSIONFULL = 0x80158610,
  283. DPNERR_TABLEFULL = 0x80158620,
  284. DPNERR_TIMEDOUT = 0x80158630,
  285. DPNERR_UNINITIALIZED = 0x80158640,
  286. DPNERR_UNSUPPORTED = 445,
  287. DPNERR_USERCANCEL = 0x80158650,
  288. } CONST_DPNERROR;
  289. [helpcontext(78407)]
  290. typedef enum CONST_DPNSTATUS {
  291. DPN_ACCEPTED = DPN_OK,
  292. DPN_REJECTED = DPNERR_GENERIC
  293. } CONST_DPNSTATUS;
  294. [helpcontext(78388)]
  295. typedef enum CONST_DPCONNECT {
  296. DPNCONNECT_OKTOQUERYFORADDRESSING = 0x0001
  297. } CONST_DPCONNECT;
  298. [helpcontext(78389)]
  299. typedef enum CONST_DPENUMHOSTS {
  300. DPNENUMHOSTS_OKTOQUERYFORADDRESSING = 0x0001,
  301. DPNENUMHOSTS_NOBROADCASTFALLBACK = 0x0002,
  302. #if 0
  303. DPNENUMHOSTS_DONTSENDADDRESS = 0x0004
  304. #endif
  305. } CONST_DPENUMHOSTS;
  306. [helpcontext(78401)]
  307. typedef enum CONST_DPNOPERATIONS {
  308. DPNOP_SYNC = 0x80000000,
  309. DPNCONNECT_SYNC = DPNOP_SYNC,
  310. DPNENUMHOSTS_SYNC = DPNOP_SYNC,
  311. DPNCREATEGROUP_SYNC = DPNOP_SYNC,
  312. DPNDESTROYGROUP_SYNC = DPNOP_SYNC,
  313. DPNADDPLAYERTOGROUP_SYNC = DPNOP_SYNC,
  314. DPNREMOVEPLAYERFROMGROUP_SYNC = DPNOP_SYNC,
  315. DPNSETGROUPINFO_SYNC = DPNOP_SYNC,
  316. DPNSETCLIENTINFO_SYNC = DPNOP_SYNC,
  317. DPNSETSERVERINFO_SYNC = DPNOP_SYNC,
  318. DPNSETPEERINFO_SYNC = DPNOP_SYNC,
  319. DPNHOST_OKTOQUERYFORADDRESSING = 0x1,
  320. } CONST_DPNOPERATIONS;
  321. [helpcontext(78404)]
  322. typedef enum CONST_DPNSENDFLAGS {
  323. DPNSEND_SYNC = DPNOP_SYNC,
  324. DPNSEND_NOCOPY = 0x0001,
  325. DPNSEND_NOCOMPLETE = 0x0002,
  326. DPNSEND_COMPLETEONPROCESS = 0x0004,
  327. DPNSEND_GUARANTEED = 0x0008,
  328. DPNSEND_NONSEQUENTIAL = 0x0010,
  329. DPNSEND_NOLOOPBACK = 0x0020,
  330. DPNSEND_PRIORITY_LOW = 0x0040,
  331. DPNSEND_PRIORITY_HIGH = 0x0080
  332. } CONST_DPNSENDFLAGS;
  333. [helpcontext(78403)]
  334. typedef enum CONST_DPNPLAYINFOFLAGS {
  335. DPNPLAYER_LOCAL = 0x0002,
  336. DPNPLAYER_HOST = 0x0004
  337. } CONST_DPNPLAYINFOFLAGS;
  338. [helpcontext(78397)]
  339. typedef enum CONST_DPNGROUPINFOFLAGS {
  340. DPNGROUP_AUTODESTRUCT = 0x0001,
  341. } CONST_DPNGROUPINFOFLAGS;
  342. [helpcontext(78402)]
  343. typedef enum CONST_DPNPLAYERGROUPFLAGS {
  344. DPNID_ALL_PLAYERS_GROUP = 0
  345. } CONST_DPNPLAYERGROUPFLAGS;
  346. [helpcontext(78395)]
  347. typedef enum CONST_DPNENUMCLIENTGROUPFLAGS {
  348. DPNENUM_PLAYERS = 0x0001,
  349. DPNENUM_GROUPS = 0x0010,
  350. } CONST_DPNENUMCLIENTGROUPFLAGS;
  351. [helpcontext(78398)]
  352. typedef enum CONST_DPNINFO {
  353. DPNINFO_NAME = 0x0001,
  354. DPNINFO_DATA = 0x0002
  355. } CONST_DPNINFO;
  356. [helpcontext(78405)]
  357. typedef enum CONST_DPNSESSIONFLAGS {
  358. DPNSESSION_CLIENT_SERVER = 0x0001,
  359. // DPNSESSION_KEEPALIVE = 0x0002,
  360. DPNSESSION_MIGRATE_HOST = 0x0004,
  361. // DPNSESSION_SERVER_ROUTING = 0x0010,
  362. // DPNSESSION_SECURE_ROUTING = 0x0020,
  363. DPNSESSION_NODPNSVR = 0x0040,
  364. DPNSESSION_REQUIREPASSWORD = 0x0080
  365. } CONST_DPNSESSIONFLAGS;
  366. [helpcontext(78394)]
  367. typedef enum CONST_DPNCANCELFLAGS {
  368. DPNCANCEL_ALL_OPERATIONS = 0x8000,
  369. DPNCANCEL_CONNECT = 0x0001,
  370. DPNCANCEL_ENUM = 0x0002,
  371. DPNCANCEL_SEND = 0x0004
  372. } CONST_DPNCANCELFLAGS;
  373. #define DPN_MSGID_OFFSET 0xFFFF0000
  374. [helpcontext(78400)]
  375. typedef enum CONST_DPNMESSAGEID {
  376. DPN_MSGID_ADD_PLAYER_TO_GROUP = ( DPN_MSGID_OFFSET | 0x0001 ),
  377. DPN_MSGID_APPLICATION_DESC = ( DPN_MSGID_OFFSET | 0x0002 ),
  378. DPN_MSGID_ASYNC_OP_COMPLETE = ( DPN_MSGID_OFFSET | 0x0003 ),
  379. DPN_MSGID_CLIENT_INFO = ( DPN_MSGID_OFFSET | 0x0004 ),
  380. DPN_MSGID_CONNECT_COMPLETE = ( DPN_MSGID_OFFSET | 0x0005 ),
  381. DPN_MSGID_CREATE_GROUP = ( DPN_MSGID_OFFSET | 0x0006 ),
  382. DPN_MSGID_CREATE_PLAYER = ( DPN_MSGID_OFFSET | 0x0007 ),
  383. DPN_MSGID_DESTROY_GROUP = ( DPN_MSGID_OFFSET | 0x0008 ),
  384. DPN_MSGID_DESTROY_PLAYER = ( DPN_MSGID_OFFSET | 0x0009 ),
  385. DPN_MSGID_ENUM_HOSTS_QUERY = ( DPN_MSGID_OFFSET | 0x000a ),
  386. DPN_MSGID_ENUM_HOSTS_RESPONSE = ( DPN_MSGID_OFFSET | 0x000b ),
  387. DPN_MSGID_GROUP_INFO = ( DPN_MSGID_OFFSET | 0x000c ),
  388. DPN_MSGID_HOST_MIGRATE = ( DPN_MSGID_OFFSET | 0x000d ),
  389. DPN_MSGID_INDICATE_CONNECT = ( DPN_MSGID_OFFSET | 0x000e ),
  390. DPN_MSGID_INDICATED_CONNECT_ABORTED = ( DPN_MSGID_OFFSET | 0x000f ),
  391. DPN_MSGID_PEER_INFO = ( DPN_MSGID_OFFSET | 0x0010 ),
  392. DPN_MSGID_RECEIVE = ( DPN_MSGID_OFFSET | 0x0011 ),
  393. DPN_MSGID_REMOVE_PLAYER_FROM_GROUP = ( DPN_MSGID_OFFSET | 0x0012 ),
  394. DPN_MSGID_RETURN_BUFFER = ( DPN_MSGID_OFFSET | 0x0013 ),
  395. DPN_MSGID_SEND_COMPLETE = ( DPN_MSGID_OFFSET | 0x0014 ),
  396. DPN_MSGID_SERVER_INFO = ( DPN_MSGID_OFFSET | 0x0015 ),
  397. DPN_MSGID_TERMINATE_SESSION = ( DPN_MSGID_OFFSET | 0x0016 )
  398. } CONST_DPNMESSAGEID;
  399. //
  400. // DirectPlayVoice Enums
  401. //
  402. [helpcontext(78422)]
  403. typedef enum CONST_DVSOUNDEFFECT {
  404. DVSOUNDCONFIG_NORMALMODE = 0x00000001,
  405. DVSOUNDCONFIG_AUTOSELECT = 0x00000002,
  406. DVSOUNDCONFIG_HALFDUPLEX = 0x00000004,
  407. DVSOUNDCONFIG_SETCONVERSIONQUALITY = 0x00000008,
  408. DVSOUNDCONFIG_NORECVOLAVAILABLE = 0x00000010,
  409. DVSOUNDCONFIG_NOFOCUS = 0x20000000,
  410. DVSOUNDCONFIG_STRICTFOCUS = 0x40000000
  411. } CONST_DVSOUNDEFFECT;
  412. [helpcontext(78412)]
  413. typedef enum CONST_DVCLIENTCONFIGENUM {
  414. DVCLIENTCONFIG_RECORDMUTE = 0x00000001,
  415. DVCLIENTCONFIG_PLAYBACKMUTE = 0x00000002,
  416. DVCLIENTCONFIG_MANUALVOICEACTIVATED = 0x00000004,
  417. DVCLIENTCONFIG_AUTORECORDVOLUME = 0x00000008,
  418. DVCLIENTCONFIG_MUTEGLOBAL = 0x00000010,
  419. DVCLIENTCONFIG_AUTOVOICEACTIVATED = 0x00000020,
  420. DVCLIENTCONFIG_ECHOSUPPRESSION = 0x08000000
  421. } CONST_DVCLIENTCONFIGENUM;
  422. [helpcontext(78420)]
  423. typedef enum CONST_DVSESSION {
  424. DVSESSION_NOHOSTMIGRATION = 0x00000001,
  425. DVSESSION_SERVERCONTROLTARGET = 0x00000002
  426. } CONST_DVSESSION;
  427. [helpcontext(78413)]
  428. typedef enum CONST_DVCOMPRESSIONCAPS {
  429. DVCOMPRESSIONCAPS_HW = 0x00000001,
  430. DVCOMPRESSIONCAPS_VARIABLE = 0x00000002,
  431. DVCOMPRESSIONCAPS_NATIVE = 0x00000004,
  432. } CONST_DVCOMPRESSIONCAPS;
  433. [helpcontext(78417)]
  434. typedef enum CONST_DVNOTIFY {
  435. DVNOTIFYPERIOD_MINPERIOD = 20
  436. }CONST_DVNOTIFY;
  437. [helpcontext(78411)]
  438. typedef enum CONST_DVCAPSENUM {
  439. DVCAPS_HWMIXING = 0x00000001,
  440. } CONST_DVCAPSENUM;
  441. [helpcontext(78415)]
  442. typedef enum CONST_DVFLAGS {
  443. DVFLAGS_SYNC = 0x00000001,
  444. DVFLAGS_QUERYONLY = 0x00000002,
  445. DVFLAGS_NOHOSTMIGRATE = 0x00000008,
  446. DVFLAGS_ALLOWBACK = 0x00000010
  447. } CONST_DVFLAGS;
  448. [helpcontext(78419)]
  449. typedef enum CONST_DVTHRESHOLD {
  450. DVTHRESHOLD_MIN = 0x00000000,
  451. DVTHRESHOLD_MAX = 0x00000063, // 99 decimal
  452. DVTHRESHOLD_DEFAULT = 0xFFFFFFFF,
  453. DVTHRESHOLD_UNUSED = 0xFFFFFFFE
  454. } CONST_DVTHRESHOLD;
  455. [helpcontext(78410)]
  456. typedef enum CONST_DVBUFFERQUALITY {
  457. DVBUFFERQUALITY_MIN = 0x00000001,
  458. DVBUFFERQUALITY_MAX = 0x00000064,
  459. DVBUFFERQUALITY_DEFAULT = 0x00000000,
  460. } CONST_DVBUFFERQUALITY;
  461. [helpcontext(78409)]
  462. typedef enum CONST_DVBUFFERAGGRESSIVENESS {
  463. DVBUFFERAGGRESSIVENESS_MIN = 0x00000001,
  464. DVBUFFERAGGRESSIVENESS_MAX = 0x00000064,
  465. DVBUFFERAGGRESSIVENESS_DEFAULT = 0x00000000,
  466. } CONST_DVBUFFERAGGRESSIVENESS;
  467. [helpcontext(78421)]
  468. typedef enum CONST_DVSESSIONTYPE {
  469. DVSESSIONTYPE_PEER = 0x00000001,
  470. DVSESSIONTYPE_MIXING = 0x00000002,
  471. DVSESSIONTYPE_FORWARDING = 0x00000003,
  472. DVSESSIONTYPE_ECHO = 0x00000004
  473. } CONST_DVSESSIONTYPE;
  474. [helpcontext(78418)]
  475. typedef enum CONST_DVPLAYBACKVOLUME {
  476. DVPLAYBACKVOLUME_DEFAULT = 0,
  477. } CONST_DVPLAYBACKVOLUME;
  478. [helpcontext(78416)]
  479. typedef enum CONST_DVMESSAGE {
  480. DVMSGID_BASE = 0x0000,
  481. DVMSGID_CREATEVOICEPLAYER = (DVMSGID_BASE+0x0001),
  482. DVMSGID_DELETEVOICEPLAYER = (DVMSGID_BASE+0x0002),
  483. DVMSGID_SESSIONLOST = (DVMSGID_BASE+0x0003),
  484. DVMSGID_PLAYERVOICESTART = (DVMSGID_BASE+0x0004),
  485. DVMSGID_PLAYERVOICESTOP = (DVMSGID_BASE+0x0005),
  486. DVMSGID_RECORDSTART = (DVMSGID_BASE+0x0006),
  487. DVMSGID_RECORDSTOP = (DVMSGID_BASE+0x0007),
  488. DVMSGID_CONNECTRESULT = (DVMSGID_BASE+0x0008),
  489. DVMSGID_DISCONNECTRESULT = (DVMSGID_BASE+0x0009),
  490. DVMSGID_INPUTLEVEL = (DVMSGID_BASE+0x000A),
  491. DVMSGID_OUTPUTLEVEL = (DVMSGID_BASE+0x000B),
  492. DVMSGID_HOSTMIGRATED = (DVMSGID_BASE+0x000C),
  493. DVMSGID_SETTARGETS = (DVMSGID_BASE+0x000D),
  494. DVMSGID_PLAYEROUTPUTLEVEL = (DVMSGID_BASE+0x000E),
  495. DVMSGID_LOSTFOCUS = (DVMSGID_BASE+0x0010),
  496. DVMSGID_GAINFOCUS = (DVMSGID_BASE+0x0011),
  497. DVMSGID_LOCALHOSTSETUP = (DVMSGID_BASE+0x0012),
  498. DVMSGID_MINBASE = (DVMSGID_CREATEVOICEPLAYER),
  499. DVMSGID_MAXBASE = (DVMSGID_LOCALHOSTSETUP),
  500. /*
  501. * DPLAY Voice Reserved names
  502. */
  503. DVID_SYS = 0,
  504. DVID_SERVERPLAYER = 1,
  505. DVID_ALLPLAYERS = 0,
  506. DVID_NOTARGET = 0xFFFFFFFF,
  507. DVID_REMAINING = DVID_NOTARGET,
  508. } CONST_DVMESSAGE;
  509. [helpcontext(78414)]
  510. typedef enum CONST_DVERR {
  511. DV_OK = 0,
  512. DV_FULLDUPLEX = 1376261,
  513. DV_HALFDUPLEX = 1376266,
  514. DV_EXIT = 1376271,
  515. DVERR_BUFFERTOOSMALL = 0x8015001E,
  516. DVERR_EXCEPTION = 0x8015005a,
  517. DVERR_GENERIC = -2147467259,
  518. DVERR_INVALIDFLAGS = 0x80150078,
  519. DVERR_INVALIDOBJECT = 0x80150082,
  520. DVERR_INVALIDPARAM = -2147024809,
  521. DVERR_INVALIDPLAYER = 0x80150087,
  522. DVERR_INVALIDENDPOINT = 0x8015008c,
  523. DVERR_INVALIDGROUP = 0x80150091,
  524. DVERR_INVALIDHANDLE = 0x80150096,
  525. DVERR_OUTOFMEMORY = -2147024882,
  526. DVERR_PENDING = -2147483638,
  527. DVERR_NOTSUPPORTED = -2147467263,
  528. DVERR_NOINTERFACE = -2147467262,
  529. DVERR_SESSIONLOST = 0x8015012C,
  530. DVERR_NOVOICESESSION = 0x8015012E,
  531. DVERR_CONNECTIONLOST = 0x80150168,
  532. DVERR_NOTINITIALIZED = 0x80150169,
  533. DVERR_CONNECTED = 0x8015016A,
  534. DVERR_NOTCONNECTED = 0x8015016B,
  535. DVERR_FORWARDNOTSUPPORTED = 0x8015016C,
  536. DVERR_COMMANDPENDING = 0x8015016D,
  537. DVERR_CONNECTABORTING = 0x8015016E,
  538. DVERR_NOTALLOWED = 0x8015016F,
  539. DVERR_INVALIDTARGET = 0x80150170,
  540. DVERR_NOTTRANSPORTHOST = 0x80150171,
  541. DVERR_COMPRESSIONNOTSUPPORTED = 0x80150172,
  542. DVERR_COMMANDALREADYPENDING = 0x80150173,
  543. DVERR_SOUNDINITFAILURE = 0x80150174,
  544. DVERR_TIMEOUT = 0x80150175,
  545. DVERR_CONNECTABORTED = 0x80150176,
  546. DVERR_NO3DSOUND = 0x80150177,
  547. DVERR_ALREADYBUFFERED = 0x80150178,
  548. DVERR_NOTBUFFERED = 0x80150179,
  549. DVERR_HOSTING = 0x8015017A,
  550. DVERR_NOTHOSTING = 0x8015017B,
  551. DVERR_INVALIDDEVICE = 0x8015017C,
  552. DVERR_RECORDSYSTEMERROR = 0x8015017D,
  553. DVERR_PLAYBACKSYSTEMERROR = 0x8015017E,
  554. DVERR_SENDERROR = 0x8015017F,
  555. DVERR_USERCANCEL = 0x80150180,
  556. DVERR_UNKNOWN = 0x80150181,
  557. DVERR_DIALOGBOX = 0x80150182,
  558. DVERR_RUN_SETUP = 0x80150183,
  559. DVERR_INCOMPATIBLEVERSION = 0x80150184,
  560. DVERR_PREVIOUSCRASH = 0x80150185,
  561. DVERR_CHILDPROCESSFAILED = 0x80150186,
  562. DVERR_WIN32 = 0x80150186,
  563. DVERR_INITIALIZED = 0x80150187,
  564. DVERR_NOTRANSPORT = 0x80150188,
  565. DVERR_NOCALLBACK = 0x80150189,
  566. DVERR_TRANSPORTNOTINIT = 0x8015018A,
  567. DVERR_TRANSPORTNOSESSION = 0x8015018B,
  568. DVERR_TRANSPORTNOPLAYER = 0x8015018C,
  569. DVERR_USERBACK = 0x8015018D,
  570. DVERR_NORECVOLAVAILABLE = 0x8015018E,
  571. DVERR_INVALIDBUFFER = 0x8015018F,
  572. DVERR_LOCKEDBUFFER = 0x80150190,
  573. } CONST_DVERR;
  574. #endif
  575. ///////////////////////////////////////////////////////////////////////////
  576. //
  577. // DirectPlay and DirectPlayLobby and DirectPlayVoice Structures
  578. //
  579. ///////////////////////////////////////////////////////////////////////////
  580. //
  581. // DirectPlay8Lobby Structures
  582. //
  583. [helpcontext(78361)]
  584. typedef struct DPN_APPLICATION_DESC_CDESC
  585. {
  586. [hidden] LONG lSize;
  587. CONST_DPNSESSIONFLAGS lFlags;
  588. BSTR guidInstance;
  589. BSTR guidApplication;
  590. LONG lMaxPlayers;
  591. LONG lCurrentPlayers;
  592. BSTR SessionName;
  593. BSTR Password;
  594. // These may or may not be included
  595. [hidden] LONG dwReservedDataSize;
  596. [hidden] LONG dwApplicationReservedDataSize;
  597. } DPN_APPLICATION_DESC_CDESC;
  598. [helpcontext(78360)]
  599. typedef struct DPL_PROGRAM_DESC_CDESC {
  600. [hidden]LONG lSize;
  601. LONG lFlags;
  602. BSTR guidApplication; // Application GUID
  603. BSTR ApplicationName; // Unicode application name
  604. BSTR CommandLine; // Unicode command line arguments
  605. BSTR CurrentDirectory; // Unicode current directory
  606. BSTR Description; // Unicode application description
  607. BSTR ExecutableFilename; // Unicode filename of application executable
  608. BSTR ExecutablePath; // Unicode path of application executable
  609. BSTR LauncherFilename; // Unicode filename of launcher executable
  610. BSTR LauncherPath; // Unicode path of launcher executable
  611. } DPL_PROGRAM_DESC_CDESC;
  612. //
  613. // DirectPlay8 Structures
  614. //
  615. //
  616. // Other structures
  617. //
  618. [helpcontext(78367)]
  619. typedef struct DPN_SP_CAPS_CDESC
  620. {
  621. [hidden] LONG lSize;
  622. LONG lFlags;
  623. LONG lNumThreads;
  624. LONG lDefaultEnumCount;
  625. LONG lDefaultEnumRetryInterval;
  626. LONG lDefaultEnumTimeout;
  627. LONG lMaxEnumPayloadSize;
  628. LONG lBuffersPerThread; // number of receive buffers per thread // ADDED
  629. LONG lSystemBufferSize; // ammount of buffering to do in addition to posted receive buffers // ADDED
  630. } DPN_SP_CAPS_CDESC;
  631. [helpcontext(78363)]
  632. typedef struct DPN_CONNECTION_INFO_CDESC
  633. {
  634. LONG lSize;
  635. LONG lRoundTripLatencyMS;
  636. LONG lThroughputBPS;
  637. LONG lPeakThroughputBPS;
  638. LONG lBytesSentGuaranteed;
  639. LONG lPacketsSentGuaranteed;
  640. LONG lBytesSentNonGuaranteed;
  641. LONG lPacketsSentNonGuaranteed;
  642. LONG lBytesRetried; // Guaranteed only
  643. LONG lPacketsRetried; // Guaranteed only
  644. LONG lBytesDropped; // Non guaranteed only
  645. LONG lPacketsDropped; // Non guaranteed only
  646. LONG lMessagesTransmittedHighPriority;
  647. LONG lMessagesTimedOutHighPriority;
  648. LONG lMessagesTransmittedNormalPriority;
  649. LONG lMessagesTimedOutNormalPriority;
  650. LONG lMessagesTransmittedLowPriority;
  651. LONG lMessagesTimedOutLowPriority;
  652. LONG lBytesReceivedGuaranteed;
  653. LONG lPacketsReceivedGuaranteed;
  654. LONG lBytesReceivedNonGuaranteed;
  655. LONG lPacketsReceivedNonGuaranteed;
  656. LONG lMessagesReceived;
  657. } DPN_CONNECTION_INFO_CDESC;
  658. [helpcontext(78366)]
  659. typedef struct DPN_SERVICE_PROVIDER_INFO_CDESC
  660. {
  661. LONG lFlags;
  662. BSTR Guid; // SP Guid
  663. BSTR Name; // Friendly Name
  664. } DPN_SERVICE_PROVIDER_INFO_CDESC;
  665. [helpcontext(78364)]
  666. typedef struct DPN_GROUP_INFO_CDESC
  667. {
  668. [hidden] LONG lSize;
  669. CONST_DPNINFO lInfoFlags;
  670. BSTR Name;
  671. // [hidden] void *pvData;
  672. [hidden] LONG lDataSize;
  673. CONST_DPNGROUPINFOFLAGS lGroupFlags;
  674. } DPN_GROUP_INFO_CDESC;
  675. [helpcontext(78365)]
  676. typedef struct DPN_PLAYER_INFO_CDESC
  677. {
  678. [hidden] LONG lSize;
  679. CONST_DPNINFO lInfoFlags;
  680. BSTR Name;
  681. // [hidden] void *pvData;
  682. [hidden] LONG lDataSize;
  683. CONST_DPNPLAYINFOFLAGS lPlayerFlags;
  684. } DPN_PLAYER_INFO_CDESC;
  685. [helpcontext(78024)]
  686. typedef struct DPNCAPS_CDESC
  687. {
  688. [hidden] LONG lSize;
  689. LONG lFlags;
  690. LONG lConnectTimeout;
  691. LONG lConnectRetries;
  692. LONG lTimeoutUntilKeepAlive;
  693. } DPNCAPS_CDESC;
  694. //
  695. // DirectPlay8 MSG structures
  696. //
  697. [helpcontext(79375)]
  698. typedef struct DPNMSG_TERMINATE_SESSION_CDESC
  699. {
  700. [hidden] LONG lSize; // Size of this structure
  701. LONG hResultCode; // Reason
  702. SAFEARRAY(BYTE) TerminateData; // Data passed from Host/Server
  703. } DPNMSG_TERMINATE_SESSION_CDESC;
  704. [helpcontext(78375)]
  705. typedef struct DPNMSG_INDICATE_CONNECT_CDESC
  706. {
  707. [hidden] LONG lSize;
  708. SAFEARRAY(BYTE) UserData;
  709. [hidden] LONG dwReplyDataSize;
  710. BSTR AddressPlayerUrl;
  711. BSTR AddressDeviceUrl;
  712. } DPNMSG_INDICATE_CONNECT_CDESC;
  713. [helpcontext(78371)]
  714. typedef struct DPNMSG_CONNECT_COMPLETE_CDESC
  715. {
  716. [hidden] LONG lSize;
  717. LONG AsyncOpHandle;
  718. LONG hResultCode;
  719. SAFEARRAY(BYTE) ReplyData;
  720. } DPNMSG_CONNECT_COMPLETE_CDESC;
  721. [helpcontext(78378)]
  722. typedef struct DPNMSG_SEND_COMPLETE_CDESC
  723. {
  724. [hidden] LONG lSize;
  725. LONG AsyncOpHandle;
  726. LONG hResultCode;
  727. LONG lSendTime;
  728. } DPNMSG_SEND_COMPLETE_CDESC;
  729. [helpcontext(78377)]
  730. typedef struct DPNMSG_RECEIVE_CDESC
  731. {
  732. [hidden] LONG lSize;
  733. LONG idSender;
  734. SAFEARRAY(BYTE) ReceivedData;
  735. LONG lDataSize;
  736. [hidden] LONG BufferHandle;
  737. } DPNMSG_RECEIVE_CDESC;
  738. [helpcontext(78370)]
  739. typedef struct DPNMSG_ASYNC_OP_COMPLETE_CDESC
  740. {
  741. [hidden] LONG lSize;
  742. LONG AsyncOpHandle;
  743. LONG hResultCode;
  744. } DPNMSG_ASYNC_OP_COMPLETE_CDESC;
  745. //
  746. // DirectPlayVoice Structures
  747. //
  748. [helpcontext(78386)]
  749. typedef struct DVSOUNDDEVICECONFIG_CDESC
  750. {
  751. [hidden] LONG lSize;
  752. CONST_DVSOUNDEFFECT lFlags;
  753. BSTR guidPlaybackDevice;
  754. BSTR guidCaptureDevice;
  755. #ifdef _WIN64
  756. HANDLE hwndAppWindow;
  757. #else
  758. LONG hwndAppWindow;
  759. #endif
  760. I_dxj_DirectSoundBuffer *MainSoundBuffer;
  761. CONST_DSBPLAYFLAGS lMainBufferFlags;
  762. LONG lMainBufferPriority;
  763. } DVSOUNDDEVICECONFIG_CDESC;
  764. [helpcontext(78261)]
  765. typedef struct DVCLIENTCONFIG_CDESC
  766. {
  767. [hidden] LONG lSize;
  768. CONST_DVCLIENTCONFIGENUM lFlags;
  769. LONG lRecordVolume;
  770. LONG lPlaybackVolume;
  771. CONST_DVTHRESHOLD lThreshold;
  772. CONST_DVBUFFERQUALITY lBufferQuality;
  773. CONST_DVBUFFERAGGRESSIVENESS lBufferAggressiveness;
  774. LONG lNotifyPeriod;
  775. } DVCLIENTCONFIG_CDESC;
  776. [helpcontext(78385)]
  777. typedef struct DVSESSIONDESC_CDESC
  778. {
  779. [hidden] LONG lSize;
  780. CONST_DVSESSION lFlags;
  781. CONST_DVSESSIONTYPE lSessionType;
  782. BSTR guidCT;
  783. CONST_DVBUFFERQUALITY lBufferQuality;
  784. CONST_DVBUFFERAGGRESSIVENESS lBufferAggressiveness;
  785. } DVSESSIONDESC_CDESC;
  786. [helpcontext(78382)]
  787. typedef struct DVCOMPRESSIONINFO_CDESC
  788. {
  789. [hidden] LONG lSize;
  790. BSTR guidType;
  791. BSTR strName;
  792. BSTR strDescription;
  793. LONG lFlags;
  794. LONG lMaxBitsPerSecond;
  795. } DVCOMPRESSIONINFO_CDESC;
  796. [helpcontext(78260)]
  797. typedef struct DVCAPS_CDESC
  798. {
  799. [hidden] LONG lSize;
  800. LONG lFlags;
  801. } DVCAPS_CDESC;
  802. [helpcontext(78372)]
  803. typedef struct DPNMSG_ENUM_HOSTS_QUERY_CDESC
  804. {
  805. [hidden] LONG lSize;
  806. SAFEARRAY(BYTE) ReceivedData;
  807. LONG lMaxResponseDataSize;
  808. SAFEARRAY(BYTE) ResponseData;
  809. BSTR AddressSenderUrl;
  810. BSTR AddressDeviceUrl;
  811. } DPNMSG_ENUM_HOSTS_QUERY_CDESC;
  812. [helpcontext(78373)]
  813. typedef struct DPNMSG_ENUM_HOSTS_RESPONSE_CDESC
  814. {
  815. [hidden] LONG lSize;
  816. DPN_APPLICATION_DESC_CDESC ApplicationDescription;
  817. SAFEARRAY(BYTE) ResponseData;
  818. LONG lRoundTripLatencyMS;
  819. BSTR AddressSenderUrl;
  820. BSTR AddressDeviceUrl;
  821. } DPNMSG_ENUM_HOSTS_RESPONSE_CDESC;
  822. [helpcontext(78356)]
  823. typedef struct DPL_APPLICATION_INFO_CDESC {
  824. BSTR guidApplication;
  825. BSTR ApplicationName;
  826. LONG lNumRunning;
  827. LONG lNumWaiting;
  828. CONST_DPLSESSION lFlags;
  829. } DPL_APPLICATION_INFO_CDESC;
  830. [helpcontext(79398)]
  831. typedef struct DPL_CONNECTION_SETTINGS_CDESC
  832. {
  833. [hidden] LONG lSize;
  834. CONST_DPLCONNECTSETTINGS lFlags;
  835. DPN_APPLICATION_DESC_CDESC ApplicationDescription;
  836. BSTR PlayerName;
  837. BSTR AddressSenderUrl;
  838. BSTR AddressDeviceUrl;
  839. } DPL_CONNECTION_SETTINGS_CDESC;
  840. [helpcontext(78357)]
  841. typedef struct DPL_CONNECT_INFO_CDESC {
  842. [hidden]LONG lSize;
  843. CONST_DPLCONNECT lFlags;
  844. BSTR guidApplication;
  845. DPL_CONNECTION_SETTINGS_CDESC ConnectionSettings;
  846. } DPL_CONNECT_INFO_CDESC;
  847. [helpcontext(78359)]
  848. typedef struct DPL_MESSAGE_RECEIVE_CDESC
  849. {
  850. [hidden] LONG lSize;
  851. LONG Sender;
  852. SAFEARRAY(BYTE) Buffer;
  853. LONG lBufferSize;
  854. } DPL_MESSAGE_RECEIVE_CDESC;
  855. [helpcontext(58358)]
  856. typedef struct DPL_MESSAGE_CONNECTION_SETTINGS_CDESC
  857. {
  858. [hidden] LONG lSize;
  859. LONG hSender; // Handle of the connection for these settings
  860. DPL_CONNECTION_SETTINGS_CDESC dplConnectionSettings; // Connection settings
  861. } DPL_MESSAGE_CONNECTION_SETTINGS_CDESC;
  862. [helpcontext(78358)]
  863. typedef struct DPL_MESSAGE_CONNECT_CDESC
  864. {
  865. [hidden] LONG lSize;
  866. LONG ConnectId;
  867. SAFEARRAY(BYTE) LobbyConnectData;
  868. DPL_CONNECTION_SETTINGS_CDESC dplMsgCon;
  869. } DPL_MESSAGE_CONNECT_CDESC;
  870. ///////////////////////////////////////////////////////////////////////////
  871. //
  872. // DirectPlay DirectPlayAddress DirectPlayLobby DirectPlayVoice Interfaces
  873. //
  874. ///////////////////////////////////////////////////////////////////////////
  875. [
  876. object,
  877. uuid(ECA8BD2A-7154-4b23-904B-61FF852A906B),
  878. helpstring("DirectPlayAddress Interface"),
  879. pointer_default(unique),
  880. helpcontext(78026)
  881. ]
  882. interface I_dxj_DirectPlayAddress : IUnknown
  883. {
  884. import "oaidl.idl";
  885. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  886. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  887. [helpcontext(78175)] HRESULT BuildFromURL([in] BSTR SourceURL);
  888. [helpcontext(78177)] HRESULT Duplicate([out,retval] I_dxj_DirectPlayAddress **NewAddress);
  889. [helpcontext(78176)] HRESULT Clear();
  890. [helpcontext(78183)] HRESULT GetURL([out,retval] BSTR *URL);
  891. [helpcontext(78182)] HRESULT GetSP([out,retval] BSTR *guidSP);
  892. [helpcontext(78184)] HRESULT GetUserData([in,out] void *UserData, [out,retval] LONG *lBufferSize);
  893. [helpcontext(78187)] HRESULT SetSP([in] BSTR guidSP);
  894. [helpcontext(78188)] HRESULT SetUserData([in] void *UserData, [in] LONG lDataSize);
  895. [helpcontext(78181)] HRESULT GetNumComponents([out,retval] LONG *lNumComponents);
  896. [helpcontext(78180)] HRESULT GetDevice([out,retval] BSTR *guidDevice);
  897. [helpcontext(78185)] HRESULT SetDevice([in] BSTR guidDevice);
  898. [helpcontext(78186)] HRESULT SetEqual([in] I_dxj_DirectPlayAddress *Address);
  899. [helpcontext(78173)] HRESULT AddComponentLong([in] BSTR sComponent, [in] LONG lValue);
  900. [helpcontext(78174)] HRESULT AddComponentString([in] BSTR sComponent, [in] BSTR sValue);
  901. [helpcontext(78178)] HRESULT GetComponentLong([in] BSTR sComponent, [out,retval] LONG *lValue);
  902. [helpcontext(78179)] HRESULT GetComponentString([in] BSTR sComponent, [out,retval] BSTR *sValue);
  903. };
  904. [
  905. object,
  906. uuid(7C34602A-7B81-4c6d-9533-658F2D471EFC),
  907. helpstring("DirectPlay Peer Interface"),
  908. pointer_default(unique),
  909. helpcontext(78027)
  910. ]
  911. interface I_dxj_DirectPlayPeer : IUnknown
  912. {
  913. import "oaidl.idl";
  914. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  915. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  916. [helpcontext(78278)] HRESULT SendTo([in] LONG idSend ,[in] SAFEARRAY(BYTE) *BufferData, [in] LONG lTimeOut,[in,optional] CONST_DPNSENDFLAGS lFlags, [out,retval] LONG *hAsyncHandle);
  917. [helpcontext(78254)] HRESULT CreateGroup([in,out] DPN_GROUP_INFO_CDESC *GroupInfo,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] LONG *hAsyncHandle);
  918. [helpcontext(78250)] HRESULT AddPlayerToGroup([in] LONG idGroup, [in] LONG idClient,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] LONG *hAsyncHandle);
  919. [helpcontext(78270)] HRESULT GetSendQueueInfo([in] LONG idPlayer, [in,out] LONG *lNumMsgs, [in,out] LONG *lNumBytes, [in,optional] CONST_DPNGETSENDQUEUEINFO lFlags);
  920. [helpcontext(78281)] HRESULT SetGroupInfo([in] LONG idGroup, [in,out] DPN_GROUP_INFO_CDESC *PlayerInfo,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] LONG *hAsyncHandle);
  921. [helpcontext(78266)] HRESULT GetGroupInfo([in] LONG idGroup,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] DPN_GROUP_INFO_CDESC *layerInfo);
  922. [helpcontext(78282)] HRESULT SetPeerInfo([in] DPN_PLAYER_INFO_CDESC *PlayerInfo,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] LONG *hAsyncHandle);
  923. [helpcontext(78269)] HRESULT GetPeerInfo([in] LONG idPeer,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] DPN_PLAYER_INFO_CDESC *layerInfo);
  924. [helpcontext(78256)] HRESULT DestroyGroup([in] LONG idGroup,[in,optional] CONST_DPNOPERATIONS lFlags,[out,retval] LONG *hAsyncHandle);
  925. [helpcontext(78277)] HRESULT RemovePlayerFromGroup([in] LONG idGroup, [in] LONG idClient,[in,optional] CONST_DPNOPERATIONS lFlags,[out,retval] LONG *hAsyncHandle);
  926. [helpcontext(78588)] HRESULT DestroyPeer([in] LONG idClient, [in] LONG lFlags, [in] void *UserData, [in] LONG UserDataSize);
  927. [helpcontext(78253)] HRESULT Connect([in] DPN_APPLICATION_DESC_CDESC *AppDesc,[in] I_dxj_DirectPlayAddress *Address,[in] I_dxj_DirectPlayAddress *DeviceInfo, [in] CONST_DPNOPERATIONS lFlags, [in] void *UserData, [in] LONG UserDataSize ,[out,retval] LONG *hAsyncHandle);
  928. [helpcontext(78276)] HRESULT RegisterMessageHandler([in] I_dxj_DirectPlayEvent *event);
  929. [helpcontext(78257)] HRESULT EnumHosts([in] DPN_APPLICATION_DESC_CDESC *ApplicationDesc,[in] I_dxj_DirectPlayAddress *AddrHost,[in] I_dxj_DirectPlayAddress *DeviceInfo,[in] LONG lEnumCount, [in] LONG lRetryInterval, [in] LONG lTimeOut,[in] CONST_DPNOPERATIONS lFlags, [in] void *UserData, [in] LONG UserDataSize ,[out,retval] LONG *lAsync);
  930. [helpcontext(78264)] HRESULT GetCountServiceProviders([in,optional] LONG lFlags, [out,retval] LONG *ret);
  931. [helpcontext(78271)] HRESULT GetServiceProvider([in] LONG lIndex, [out,retval] DPN_SERVICE_PROVIDER_INFO_CDESC *ret);
  932. // Enum for Clients/Groups
  933. [helpcontext(78195)] HRESULT GetCountPlayersAndGroups([in,optional] CONST_DPNENUMCLIENTGROUPFLAGS lFlags, [out,retval] LONG *ret);
  934. [helpcontext(78560)] HRESULT GetPlayerOrGroup([in] LONG lIndex, [out,retval] LONG *ret);
  935. // Enum Players in groups
  936. [helpcontext(78263)] HRESULT GetCountGroupMembers([in] LONG dpid,[in,optional] LONG lFlags, [out,retval] LONG *ret);
  937. [helpcontext(78267)] HRESULT GetGroupMember([in] LONG lIndex,[in] LONG dpid, [out,retval] LONG *ret);
  938. [helpcontext(78212), hidden] HRESULT ReturnBuffer([in] LONG lBufferHandle);
  939. [helpcontext(78274)] HRESULT Host([in] DPN_APPLICATION_DESC_CDESC *AppDesc,[in] I_dxj_DirectPlayAddress *Addres, [in,optional] LONG lFlags);
  940. [helpcontext(78251)] HRESULT CancelAsyncOperation([in] LONG lAsyncHandle, [in,optional] CONST_DPNCANCELFLAGS lFlags);
  941. [helpcontext(78258)] HRESULT GetApplicationDesc([in,optional] LONG lFlags, [out,retval] DPN_APPLICATION_DESC_CDESC *ret);
  942. [helpcontext(78279)] HRESULT SetApplicationDesc([in,out] DPN_APPLICATION_DESC_CDESC *AppDesc, [in,optional] LONG lFlags);
  943. [helpcontext(78252)] HRESULT Close([in,optional] LONG lFlags);
  944. [helpcontext(78259)] HRESULT GetCaps([in,optional] LONG lFlags, [out,retval] DPNCAPS_CDESC *ret);
  945. [helpcontext(78280)] HRESULT SetCaps([in,out] DPNCAPS_CDESC *Caps, [in,optional] LONG lFlags);
  946. [helpcontext(78275)] HRESULT RegisterLobby([in] LONG dpnHandle, [in] I_dxj_DirectPlayLobbiedApplication *LobbyApp, [in,optional] LONG lFlags);
  947. [helpcontext(78561)] HRESULT GetConnectionInfo([in] LONG idPlayer, [in,optional] LONG lFlags, [out,retval] DPN_CONNECTION_INFO_CDESC *pdpConnectionInfo);
  948. [helpcontext(78268)] HRESULT GetPeerAddress([in] LONG idPlayer,[in,optional] LONG lFlags, [out,retval] I_dxj_DirectPlayAddress **pAddress);
  949. [helpcontext(78201)] HRESULT GetLocalHostAddress([in,optional] LONG lFlags, [out,retval] I_dxj_DirectPlayAddress **pAddress);
  950. [helpcontext(78283)] HRESULT SetSPCaps([in] BSTR guidSP, [in] DPN_SP_CAPS_CDESC *spCaps, [in,optional] LONG lFlags);
  951. [helpcontext(78272)] HRESULT GetSPCaps([in] BSTR guidSP, [in,optional] LONG lFlags, [out,retval] DPN_SP_CAPS_CDESC *spCaps);
  952. [helpcontext(78285)] HRESULT TerminateSession([in] LONG lFlags, [in] void *UserData, [in] LONG UserDataSize);
  953. [helpcontext(78028)] HRESULT UnRegisterMessageHandler();
  954. };
  955. [
  956. object,
  957. uuid(7584BBA4-1B39-4dcd-A334-D168CBB5A915),
  958. helpstring("DirectPlay Server Interface"),
  959. pointer_default(unique),
  960. helpcontext(78029)
  961. ]
  962. interface I_dxj_DirectPlayServer : IUnknown
  963. {
  964. import "oaidl.idl";
  965. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  966. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  967. [helpcontext(78310)] HRESULT RegisterMessageHandler([in] I_dxj_DirectPlayEvent *event);
  968. // Enum for Clients/Groups
  969. [helpcontext(78234)] HRESULT GetCountPlayersAndGroups([in,optional] CONST_DPNENUMCLIENTGROUPFLAGS lFlags, [out,retval] LONG *ret);
  970. [helpcontext(78232)] HRESULT GetPlayerOrGroup([in] LONG lIndex, [out,retval] LONG *ret);
  971. // Enum Players in groups
  972. [helpcontext(78300)] HRESULT GetCountGroupMembers([in] LONG dpid,[in,optional] LONG lFlags, [out,retval] LONG *ret);
  973. [helpcontext(78303)] HRESULT GetGroupMember([in] LONG lIndex,[in] LONG dpid, [out,retval] LONG *ret);
  974. [helpcontext(78301)] HRESULT GetCountServiceProviders([in,optional] LONG lFlags, [out,retval] LONG *ret);
  975. [helpcontext(78305)] HRESULT GetServiceProvider([in] LONG lIndex, [out,retval] DPN_SERVICE_PROVIDER_INFO_CDESC *ret);
  976. [helpcontext(78288)] HRESULT CancelAsyncOperation([in] LONG lAsyncHandle, [in,optional] CONST_DPNCANCELFLAGS lFlags);
  977. [helpcontext(78312)] HRESULT SendTo([in] LONG idSend ,[in] SAFEARRAY(BYTE) *BufferData, [in] LONG lTimeOut,[in,optional] CONST_DPNSENDFLAGS lFlags, [out,retval] LONG *hAsyncHandle);
  978. [helpcontext(78290)] HRESULT CreateGroup([in] DPN_GROUP_INFO_CDESC *GroupInfo,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] LONG *hAsyncHandle);
  979. [helpcontext(78222)] HRESULT AddPlayerToGroup([in] LONG idGroup, [in] LONG idClient,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] LONG *hAsyncHandle);
  980. [helpcontext(78304)] HRESULT GetSendQueueInfo([in] LONG idPlayer, [in,out] LONG *lNumMsgs, [in,out] LONG *lNumBytes, [in,optional] CONST_DPNGETSENDQUEUEINFO lFlags);
  981. [helpcontext(78315)] HRESULT SetGroupInfo([in] LONG idGroup, [in] DPN_GROUP_INFO_CDESC *PlayerInfo,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] LONG *hAsyncHandle);
  982. [helpcontext(78302)] HRESULT GetGroupInfo([in] LONG idGroup,[in,optional] LONG lFlags, [out,retval] DPN_GROUP_INFO_CDESC *layerInfo);
  983. [helpcontext(78316)] HRESULT SetServerInfo([in] DPN_PLAYER_INFO_CDESC *PlayerInfo,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] LONG *hAsyncHandle);
  984. [helpcontext(78296)] HRESULT GetClientInfo([in] LONG idPeer,[in,optional] LONG lFlags, [out,retval] DPN_PLAYER_INFO_CDESC *layerInfo);
  985. [helpcontext(78293)] HRESULT GetApplicationDesc([in,optional] LONG lFlags, [out,retval] DPN_APPLICATION_DESC_CDESC *ret);
  986. [helpcontext(78313)] HRESULT SetApplicationDesc([in,out] DPN_APPLICATION_DESC_CDESC *AppDesc, [in,optional] LONG lFlags);
  987. [helpcontext(78308)] HRESULT Host([in] DPN_APPLICATION_DESC_CDESC *AppDesc,[in] I_dxj_DirectPlayAddress *Address, [in,optional] LONG lFlags);
  988. [helpcontext(78289)] HRESULT Close([in,optional] LONG lFlags);
  989. [helpcontext(78294)] HRESULT GetCaps([in,optional] LONG lFlags, [out,retval] DPNCAPS_CDESC *ret);
  990. [helpcontext(78314)] HRESULT SetCaps([in,out] DPNCAPS_CDESC *Caps, [in,optional] LONG lFlags);
  991. [helpcontext(78247)] HRESULT RemovePlayerFromGroup([in] LONG idGroup, [in] LONG idClient,[in,optional] CONST_DPNOPERATIONS lFlags,[out,retval] LONG *hAsyncHandle);
  992. [helpcontext(78248), hidden] HRESULT ReturnBuffer([in] LONG lBufferHandle);
  993. [helpcontext(78291)] HRESULT DestroyClient([in] LONG idClient, [in] LONG lFlags, [in] void *UserData, [in] LONG UserDataSize);
  994. [helpcontext(78292)] HRESULT DestroyGroup([in] LONG idGroup,[in,optional] CONST_DPNOPERATIONS lFlags,[out,retval] LONG *hAsyncHandle);
  995. [helpcontext(78309)] HRESULT RegisterLobby([in] LONG dpnHandle, [in] I_dxj_DirectPlayLobbiedApplication *LobbyApp, [in,optional] LONG lFlags);
  996. [helpcontext(78298)] HRESULT GetConnectionInfo([in] LONG idPlayer, [in,optional] LONG lFlags, [out,retval] DPN_CONNECTION_INFO_CDESC *pdpConnectionInfo);
  997. [helpcontext(78995)] HRESULT GetClientAddress([in] LONG idPlayer,[in,optional] LONG lFlags, [out,retval] I_dxj_DirectPlayAddress **pAddress);
  998. [helpcontext(78239)] HRESULT GetLocalHostAddress([in,optional] LONG lFlags, [out,retval] I_dxj_DirectPlayAddress **pAddress);
  999. [helpcontext(78317)] HRESULT SetSPCaps([in] BSTR guidSP, [in] DPN_SP_CAPS_CDESC *spCaps, [in,optional] LONG lFlags);
  1000. [helpcontext(78306)] HRESULT GetSPCaps([in] BSTR guidSP, [in,optional] LONG lFlags, [out,retval] DPN_SP_CAPS_CDESC *spCaps);
  1001. [helpcontext(78030)] HRESULT UnRegisterMessageHandler();
  1002. };
  1003. [
  1004. object,
  1005. uuid(3F6521E5-94BC-4a7a-A049-3D199EB59E72),
  1006. helpstring("DirectPlay Client Interface"),
  1007. pointer_default(unique),
  1008. helpcontext(78031)
  1009. ]
  1010. interface I_dxj_DirectPlayClient : IUnknown
  1011. {
  1012. import "oaidl.idl";
  1013. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1014. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1015. [helpcontext(78206)] HRESULT RegisterMessageHandler([in] I_dxj_DirectPlayEvent *event);
  1016. [helpcontext(78193)] HRESULT EnumHosts([in] DPN_APPLICATION_DESC_CDESC *ApplicationDesc,[in] I_dxj_DirectPlayAddress *AddrHost,[in] I_dxj_DirectPlayAddress *DeviceInfo,[in] LONG lRetryCount, [in] LONG lRetryInterval, [in] LONG lTimeOut,[in] CONST_DPNOPERATIONS lFlags, [in] void *UserData, [in] LONG UserDataSize ,[out,retval] LONG *lAsync);
  1017. [helpcontext(78197)] HRESULT GetCountServiceProviders([in,optional] LONG lFlags, [out,retval] LONG *ret);
  1018. [helpcontext(78202)] HRESULT GetServiceProvider([in] LONG lIndex, [out,retval] DPN_SERVICE_PROVIDER_INFO_CDESC *ret);
  1019. [helpcontext(78190)] HRESULT CancelAsyncOperation([in] LONG lAsyncHandle, [in,optional] CONST_DPNCANCELFLAGS lFlags);
  1020. [helpcontext(78192)] HRESULT Connect([in] DPN_APPLICATION_DESC_CDESC *AppDesc,[in] I_dxj_DirectPlayAddress *Address,[in] I_dxj_DirectPlayAddress *DeviceInfo, [in] CONST_DPNOPERATIONS lFlags, [in] void *UserData, [in] LONG UserDataSize ,[out,retval] LONG *hAsyncHandle);
  1021. [helpcontext(78208)] HRESULT Send([in] SAFEARRAY(BYTE) *BufferData, [in] LONG lTimeOut,[in,optional] CONST_DPNSENDFLAGS lFlags, [out,retval] LONG *hAsyncHandle);
  1022. [helpcontext(78199)] HRESULT GetSendQueueInfo([in,out] LONG *lNumMsgs, [in,out] LONG *lNumBytes, [in,optional] CONST_DPNGETSENDQUEUEINFO lFlags);
  1023. [helpcontext(78194)] HRESULT GetApplicationDesc([in,optional] LONG lFlags, [out,retval] DPN_APPLICATION_DESC_CDESC *ret);
  1024. [helpcontext(78210)] HRESULT SetClientInfo([in] DPN_PLAYER_INFO_CDESC *PlayerInfo,[in,optional] CONST_DPNOPERATIONS lFlags, [out,retval] LONG *hAsyncHandle);
  1025. [helpcontext(78501)] HRESULT GetServerInfo([in,optional] LONG lFlags, [out,retval] DPN_PLAYER_INFO_CDESC *layerInfo);
  1026. [helpcontext(78191)] HRESULT Close([in,optional] LONG lFlags);
  1027. [helpcontext(78207), hidden] HRESULT ReturnBuffer([in] LONG lBufferHandle);
  1028. [helpcontext(78295)] HRESULT GetCaps([in,optional] LONG lFlags, [out,retval] DPNCAPS_CDESC *ret);
  1029. [helpcontext(78209)] HRESULT SetCaps([in,out] DPNCAPS_CDESC *Caps, [in,optional] LONG lFlags);
  1030. [helpcontext(78205)] HRESULT RegisterLobby([in] LONG dpnHandle, [in] I_dxj_DirectPlayLobbiedApplication *LobbyApp, [in,optional] LONG lFlags);
  1031. [helpcontext(78196)] HRESULT GetConnectionInfo([in,optional] LONG lFlags, [out,retval] DPN_CONNECTION_INFO_CDESC *pdpConnectionInfo);
  1032. [helpcontext(78200)] HRESULT GetServerAddress([in,optional] LONG lFlags, [out,retval] I_dxj_DirectPlayAddress **pAddress);
  1033. [helpcontext(78211)] HRESULT SetSPCaps([in] BSTR guidSP, [in] DPN_SP_CAPS_CDESC *spCaps, [in,optional] LONG lFlags);
  1034. [helpcontext(78203)] HRESULT GetSPCaps([in] BSTR guidSP, [in,optional] LONG lFlags, [out,retval] DPN_SP_CAPS_CDESC *spCaps);
  1035. [helpcontext(78032)] HRESULT UnRegisterMessageHandler();
  1036. };
  1037. [
  1038. object,
  1039. uuid(14716737-3005-4758-896F-B48D001929A5),
  1040. helpstring("DirectPlayLobbyClient Interface"),
  1041. pointer_default(unique),
  1042. oleautomation,
  1043. local,
  1044. helpcontext(78033)
  1045. ]
  1046. interface I_dxj_DirectPlayLobbyClient : IUnknown
  1047. {
  1048. import "oaidl.idl";
  1049. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1050. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1051. [helpcontext(78241)] HRESULT RegisterMessageHandler([in] I_dxj_DirectPlayLobbyEvent *lobbyEvent);
  1052. [helpcontext(78539)] HRESULT GetCountLocalPrograms([in] BSTR GuidApplication,[out,retval] LONG *lCount);
  1053. [helpcontext(78240)] HRESULT GetLocalProgram([in] LONG lProgID, [out,retval] DPL_APPLICATION_INFO_CDESC *app);
  1054. [helpcontext(78238)] HRESULT ConnectApplication([in] DPL_CONNECT_INFO_CDESC *ConnectionInfo,[in] LONG lTimeOut,[in] CONST_DPLCONNECT lFlags, [out,retval] LONG *hApplication);
  1055. [helpcontext(78243)] HRESULT Send([in] LONG Target,[in] SAFEARRAY(BYTE) *Buffer,[in] LONG lBufferSize,[in] LONG lFlags);
  1056. [helpcontext(78242)] HRESULT ReleaseApplication([in] LONG Application);
  1057. [helpcontext(78237)] HRESULT Close();
  1058. [helpcontext(78034)] HRESULT UnRegisterMessageHandler();
  1059. [helpcontext(78035)] HRESULT GetConnectionSettings([in] LONG hLobbyClient, [in] LONG lFlags, [out,retval] DPL_CONNECTION_SETTINGS_CDESC *ConnectionSettings);
  1060. [helpcontext(78036)] HRESULT SetConnectionSettings([in] LONG hTarget, [in] LONG lFlags, [in,out] DPL_CONNECTION_SETTINGS_CDESC *ConnectionSettings, [in] I_dxj_DirectPlayAddress *HostAddress, [in] I_dxj_DirectPlayAddress *Device);
  1061. };
  1062. [
  1063. object,
  1064. uuid(EF390476-6EA0-4ad3-9EA3-768DCB68038D),
  1065. helpstring("DirectPlayLobbiedApplication Interface"),
  1066. pointer_default(unique),
  1067. oleautomation,
  1068. local,
  1069. helpcontext(78037)
  1070. ]
  1071. interface I_dxj_DirectPlayLobbiedApplication : IUnknown
  1072. {
  1073. import "oaidl.idl";
  1074. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1075. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1076. [helpcontext(78230)] HRESULT RegisterMessageHandler([in] I_dxj_DirectPlayLobbyEvent *lobbyEvent, [out,retval] LONG *lDPNHandle);
  1077. [helpcontext(78231)] HRESULT RegisterProgram([in] DPL_PROGRAM_DESC_CDESC *ProgramDesc,[in] LONG lFlags);
  1078. [helpcontext(78534)] HRESULT UnRegisterProgram([in] BSTR guidApplication,[in] LONG lFlags);
  1079. [helpcontext(78532)] HRESULT Send([in] LONG Target,[in] SAFEARRAY(BYTE) *Buffer,[in] LONG lBufferSize,[in] LONG lFlags);
  1080. [helpcontext(78233)] HRESULT SetAppAvailable([in] VARIANT_BOOL fAvailable, [in] CONST_DPLAVAILABLE lFlags);
  1081. [helpcontext(78235)] HRESULT UpdateStatus([in] LONG LobbyClient, [in] CONST_DPLSESSION lStatus);
  1082. [helpcontext(78229)] HRESULT Close();
  1083. [helpcontext(78038)] HRESULT UnRegisterMessageHandler();
  1084. [helpcontext(78039)] HRESULT GetConnectionSettings([in] LONG LobbyClient, [in] LONG lFlags, [out,retval] DPL_CONNECTION_SETTINGS_CDESC *ConnectionSettings);
  1085. [helpcontext(78040)] HRESULT SetConnectionSettings([in] LONG hTarget, [in] LONG lFlags, [in,out] DPL_CONNECTION_SETTINGS_CDESC *ConnectionSettings, [in] I_dxj_DirectPlayAddress *HostAddress, [in] I_dxj_DirectPlayAddress *Device);
  1086. };
  1087. [
  1088. object,
  1089. uuid(F794A01F-2A0D-46a8-9CEF-D5678A413BEF),
  1090. helpstring("DirectPlayLobby Event Interface"),
  1091. pointer_default(unique),
  1092. oleautomation,
  1093. local,
  1094. helpcontext(78041)
  1095. ]
  1096. interface I_dxj_DirectPlayLobbyEvent : IUnknown
  1097. {
  1098. [helpcontext(78847)] HRESULT Receive([in,out] DPL_MESSAGE_RECEIVE_CDESC *dlNotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1099. [helpcontext(78245)] HRESULT Connect([in,out] DPL_MESSAGE_CONNECT_CDESC *dlNotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1100. [helpcontext(78246)] HRESULT Disconnect([in] LONG DisconnectID, [in] LONG lReason);
  1101. [helpcontext(78248)] HRESULT SessionStatus([in] LONG Status, [in] LONG lHandle);
  1102. [helpcontext(78042)] HRESULT ConnectionSettings([in,out] DPL_MESSAGE_CONNECTION_SETTINGS_CDESC *ConnectionSettings);
  1103. };
  1104. [
  1105. object,
  1106. uuid(F9DCCD1D-E6B9-45ed-B3E2-C32414C71FA4),
  1107. helpstring("DirectPlay Event Interface"),
  1108. pointer_default(unique),
  1109. oleautomation,
  1110. local,
  1111. helpcontext(78043)
  1112. ]
  1113. interface I_dxj_DirectPlayEvent : IUnknown
  1114. {
  1115. [helpcontext(78220)] HRESULT AddRemovePlayerGroup([in] LONG lMsgID, [in] LONG lPlayerID, [in] LONG lGroupID, [in,out] VARIANT_BOOL *fRejectMsg);
  1116. [helpcontext(78214)] HRESULT AppDesc([in,out] VARIANT_BOOL *fRejectMsg);
  1117. [helpcontext(78215)] HRESULT AsyncOpComplete([in,out] DPNMSG_ASYNC_OP_COMPLETE_CDESC *dpnotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1118. [helpcontext(78514)] HRESULT CreateGroup([in] LONG lGroupID, [in] LONG lOwnerID, [in,out] VARIANT_BOOL *fRejectMsg);
  1119. [helpcontext(78213)] HRESULT CreatePlayer([in] LONG lPlayerID, [in,out] VARIANT_BOOL *fRejectMsg);
  1120. [helpcontext(78216)] HRESULT ConnectComplete([in,out] DPNMSG_CONNECT_COMPLETE_CDESC *dpnotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1121. [helpcontext(78515)] HRESULT DestroyGroup([in] LONG lGroupID, [in] LONG lReason, [in,out] VARIANT_BOOL *fRejectMsg);
  1122. [helpcontext(78513)] HRESULT DestroyPlayer([in] LONG lPlayerID, [in] LONG lReason, [in,out] VARIANT_BOOL *fRejectMsg);
  1123. [helpcontext(78218)] HRESULT EnumHostsQuery([in,out] DPNMSG_ENUM_HOSTS_QUERY_CDESC *dpnotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1124. [helpcontext(78219)] HRESULT EnumHostsResponse([in,out] DPNMSG_ENUM_HOSTS_RESPONSE_CDESC *dpnotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1125. [helpcontext(78522)] HRESULT HostMigrate([in] LONG lNewHostID, [in,out] VARIANT_BOOL *fRejectMsg);
  1126. [helpcontext(78223)] HRESULT IndicateConnect([in,out] DPNMSG_INDICATE_CONNECT_CDESC *dpnotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1127. [helpcontext(78529)] HRESULT IndicatedConnectAborted([in,out] VARIANT_BOOL *fRejectMsg);
  1128. [helpcontext(78224)] HRESULT InfoNotify([in] LONG lMsgID, [in] LONG lNotifyID, [in,out] VARIANT_BOOL *fRejectMsg);
  1129. [helpcontext(78225)] HRESULT Receive([in,out] DPNMSG_RECEIVE_CDESC *dpnotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1130. [helpcontext(78226)] HRESULT SendComplete([in,out] DPNMSG_SEND_COMPLETE_CDESC *dpnotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1131. [helpcontext(78227)] HRESULT TerminateSession([in,out] DPNMSG_TERMINATE_SESSION_CDESC *dpNotify, [in,out] VARIANT_BOOL *fRejectMsg);
  1132. };
  1133. ///////////////////////////////////////////////////////////////////////////
  1134. //
  1135. // DplayVoice Interfaces
  1136. //
  1137. ///////////////////////////////////////////////////////////////////////////
  1138. // DirectPlayVoiceEvents
  1139. [
  1140. object,
  1141. uuid(26AE5141-8010-46ea-861C-F9FC0F8B61D9),
  1142. helpstring("DirectPlayVoice Event Interface"),
  1143. pointer_default(unique),
  1144. oleautomation,
  1145. local,
  1146. helpcontext(78044)
  1147. ]
  1148. interface I_dxj_DPVoiceEvent : IUnknown
  1149. {
  1150. import "oaidl.idl";
  1151. [helpcontext(58341)] HRESULT SessionLost([in] LONG ResultCode);
  1152. [helpcontext(58342)] HRESULT ConnectResult([in] LONG ResultCode);
  1153. [helpcontext(58343)] HRESULT DisconnectResult([in] LONG ResultCode);
  1154. [helpcontext(58344)] HRESULT CreateVoicePlayer([in] LONG PlayerID, [in] LONG Flags);
  1155. [helpcontext(58345)] HRESULT DeleteVoicePlayer([in] LONG PlayerID);
  1156. [helpcontext(58346)] HRESULT HostMigrated([in] LONG NewHostID, [in,out] I_dxj_DirectPlayVoiceServer *NewServer);
  1157. [helpcontext(58347)] HRESULT InputLevel([in] LONG PeakLevel, [in] LONG RecordVolume);
  1158. [helpcontext(58348)] HRESULT OutputLevel([in] LONG PeakLevel, [in] LONG OutputVolume);
  1159. [helpcontext(58349)] HRESULT PlayerOutputLevel([in] LONG SourcePlayerID, [in] LONG PeakLevel);
  1160. [helpcontext(58350)] HRESULT PlayerVoiceStart([in] LONG SourcePlayerID);
  1161. [helpcontext(58351)] HRESULT PlayerVoiceStop([in] LONG SourcePlayerID);
  1162. [helpcontext(58352)] HRESULT RecordStart([in] LONG PeakVolume);
  1163. [helpcontext(58353)] HRESULT RecordStop([in] LONG PeakVolume);
  1164. };
  1165. [
  1166. object,
  1167. uuid(9F76FF0F-8E92-11d1-1515-00C04FC2C312),
  1168. helpstring("IDirectPlayVoiceClient Interface"),
  1169. pointer_default(unique),
  1170. local,
  1171. helpcontext(78045)
  1172. ]
  1173. interface I_dxj_DirectPlayVoiceClient : IUnknown
  1174. {
  1175. import "oaidl.idl";
  1176. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1177. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1178. //
  1179. // *** I_dxj_DirectPlayVoiceClient methods ***
  1180. //
  1181. [helpcontext(78332)] HRESULT Initialize([in] IUnknown *DplayObj, [in] LONG lFlags);
  1182. [helpcontext(78320)] HRESULT Connect([in] DVSOUNDDEVICECONFIG_CDESC *SoundDeviceConfig, [in] DVCLIENTCONFIG_CDESC *ClientConfig, [in] LONG lFlags);
  1183. [helpcontext(78323)] HRESULT Disconnect([in] LONG lFlags);
  1184. [helpcontext(78328)] HRESULT GetSessionDesc([out,retval] DVSESSIONDESC_CDESC *SessionDesc);
  1185. [helpcontext(78325)] HRESULT GetClientConfig([out,retval] DVCLIENTCONFIG_CDESC *ClientConfig);
  1186. [helpcontext(78333)] HRESULT SetClientConfig([in] DVCLIENTCONFIG_CDESC *ClientConfig);
  1187. [helpcontext(78324)] HRESULT GetCaps([out,retval] DVCAPS_CDESC *Caps);
  1188. [helpcontext(78327)] HRESULT GetCompressionTypeCount([out,retval] LONG *v1);
  1189. [helpcontext(78326)] HRESULT GetCompressionType([in] LONG lIndex, [in,out] DVCOMPRESSIONINFO_CDESC *Data,[in] LONG lFlags);
  1190. [helpcontext(78335)] HRESULT SetTransmitTargets([in] SAFEARRAY(LONG) *playerIDs, [in] LONG lFlags);
  1191. [helpcontext(78331)] HRESULT GetTransmitTargets([in] LONG lFlags, [out,retval] SAFEARRAY(LONG) *ret);
  1192. [helpcontext(78334)] HRESULT SetCurrentSoundDevices([in] I_dxj_DirectSound *DirectSoundObj, [in] I_dxj_DirectSoundCapture *DirectCaptureObj);
  1193. [helpcontext(78330)] HRESULT GetSoundDevices([in,out] I_dxj_DirectSound *DirectSoundObj, [in,out] I_dxj_DirectSoundCapture *DirectCaptureObj);
  1194. [helpcontext(78321)] HRESULT Create3DSoundBuffer([in] LONG playerID, [in,optional] I_dxj_DirectSoundBuffer *Buffer,[in,optional] LONG lPriority, [in,optional] CONST_DSBPLAYFLAGS lFlags, [out,retval] I_dxj_DirectSound3dBuffer **UserBuffer);
  1195. [helpcontext(78322)] HRESULT Delete3DSoundBuffer([in] LONG playerID, [in] I_dxj_DirectSound3dBuffer *UserBuffer);
  1196. [helpcontext(78329)] HRESULT GetSoundDeviceConfig([out,retval] DVSOUNDDEVICECONFIG_CDESC *SoundDeviceConfig);
  1197. [helpcontext(78336)] HRESULT StartClientNotification([in] I_dxj_DPVoiceEvent *event);
  1198. [helpcontext(78047)] HRESULT UnRegisterMessageHandler();
  1199. };
  1200. [
  1201. object,
  1202. uuid(9F76FF0F-8E92-11d1-1515-00C04FC2C313),
  1203. helpstring("IDirectPlayVoiceServer Interface"),
  1204. pointer_default(unique),
  1205. oleautomation,
  1206. local,
  1207. helpcontext(78048)
  1208. ]
  1209. interface I_dxj_DirectPlayVoiceServer : IUnknown
  1210. {
  1211. import "oaidl.idl";
  1212. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1213. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1214. //
  1215. // *** I_dxj_DirectPlayVoiceServer methods ***
  1216. //
  1217. [helpcontext(78348)] HRESULT Initialize([in] IUnknown *DplayObj, [in] LONG lFlags);
  1218. [helpcontext(78352)] HRESULT StartSession([in] DVSESSIONDESC_CDESC *SessionDesc,[in] LONG lFlags);
  1219. [helpcontext(78353)] HRESULT StopSession([in] LONG lFlags);
  1220. [helpcontext(78346)] HRESULT GetSessionDesc([out,retval] DVSESSIONDESC_CDESC *SessionDesc);
  1221. [helpcontext(78349)] HRESULT SetSessionDesc([in] DVSESSIONDESC_CDESC *ClientConfig);
  1222. [helpcontext(78343)] HRESULT GetCaps([out,retval] DVCAPS_CDESC *Caps);
  1223. [helpcontext(78345)] HRESULT GetCompressionTypeCount([out,retval] LONG *v1);
  1224. [helpcontext(78344)] HRESULT GetCompressionType([in] LONG lIndex, [in,out] DVCOMPRESSIONINFO_CDESC *Data,[in] LONG lFlags);
  1225. [helpcontext(78350)] HRESULT SetTransmitTargets([in] LONG playerSourceID,[in] SAFEARRAY(LONG) *playerTargetIDs, [in] LONG lFlags);
  1226. [helpcontext(78347)] HRESULT GetTransmitTargets([in] LONG playerSourceID, [in] LONG lFlags, [out,retval] SAFEARRAY(LONG) *ret);
  1227. [helpcontext(78351)] HRESULT StartServerNotification([in] I_dxj_DPVoiceEvent *event);
  1228. [helpcontext(78049)] HRESULT UnRegisterMessageHandler();
  1229. };
  1230. [
  1231. object,
  1232. uuid(9F76FF0F-8E92-11d1-1515-00C04FC2C314),
  1233. helpstring("DirectPlayVoiceTest Interface"),
  1234. pointer_default(unique),
  1235. oleautomation,
  1236. local,
  1237. helpcontext(78050)
  1238. ]
  1239. interface I_dxj_DirectPlayVoiceSetup : IUnknown
  1240. {
  1241. import "oaidl.idl";
  1242. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1243. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1244. //
  1245. // *** I_dxj_DirectPlayVoiceSetup methods ***
  1246. //
  1247. #ifdef _WIN64
  1248. [helpcontext(78355)] HRESULT CheckAudioSetup([in] BSTR guidPlaybackDevice , [in] BSTR guidCaptureDevice , [in] HWND hwndOwner, [in] LONG lFlags, [out,retval] LONG *v1);
  1249. #else
  1250. [helpcontext(78355)] HRESULT CheckAudioSetup([in] BSTR guidPlaybackDevice , [in] BSTR guidCaptureDevice , [in] LONG hwndOwner, [in] LONG lFlags, [out,retval] LONG *v1);
  1251. #endif
  1252. };
  1253. //
  1254. // Direct Play String Constants
  1255. //
  1256. [
  1257. dllname("dx8vb.dll")
  1258. ]
  1259. module DPLAY8STRINGCONSTANTS
  1260. {
  1261. // key names for address components
  1262. const BSTR DPN_KEY_APPLICATION_INSTANCE = L"applicationinstance";
  1263. const BSTR DPN_KEY_BAUD = L"baud";
  1264. const BSTR DPN_KEY_DEVICE = L"device";
  1265. const BSTR DPN_KEY_FLOWCONTROL = L"flowcontrol";
  1266. const BSTR DPN_KEY_HOSTNAME = L"hostname";
  1267. const BSTR DPN_KEY_PARITY = L"parity";
  1268. const BSTR DPN_KEY_PHONENUMBER = L"phonenumber";
  1269. const BSTR DPN_KEY_PORT = L"port";
  1270. const BSTR DPN_KEY_PROGRAM = L"program";
  1271. const BSTR DPN_KEY_PROVIDER = L"provider";
  1272. const BSTR DPN_KEY_STOPBITS = L"stopbits";
  1273. // values for baud rate
  1274. const DWORD DPN_BAUD_RATE_9600 = 9600;
  1275. const DWORD DPN_BAUD_RATE_14400 = 14400;
  1276. const DWORD DPN_BAUD_RATE_19200 = 19200;
  1277. const DWORD DPN_BAUD_RATE_38400 = 38400;
  1278. const DWORD DPN_BAUD_RATE_56000 = 56000;
  1279. const DWORD DPN_BAUD_RATE_57600 = 57600;
  1280. const DWORD DPN_BAUD_RATE_115200 = 115200;
  1281. // values for stop bits
  1282. const BSTR DPN_STOP_BITS_ONE = L"1";
  1283. const BSTR DPN_STOP_BITS_ONE_FIVE = L"1.5";
  1284. const BSTR DPN_STOP_BITS_TWO = L"2";
  1285. // values for parity
  1286. const BSTR DPN_PARITY_NONE = L"NONE";
  1287. const BSTR DPN_PARITY_EVEN = L"EVEN";
  1288. const BSTR DPN_PARITY_ODD = L"ODD";
  1289. const BSTR DPN_PARITY_MARK = L"MARK";
  1290. const BSTR DPN_PARITY_SPACE = L"SPACE";
  1291. // values for flow control
  1292. const BSTR DPN_FLOW_CONTROL_NONE = L"NONE";
  1293. const BSTR DPN_FLOW_CONTROL_XONXOFF = L"XONXOFF";
  1294. const BSTR DPN_FLOW_CONTROL_RTS = L"RTS";
  1295. const BSTR DPN_FLOW_CONTROL_DTR = L"DTR";
  1296. const BSTR DPN_FLOW_CONTROL_RTSDTR = L"RTSDTR";
  1297. const BSTR DPN_SEPARATOR_KEYVALUE = L"=";
  1298. const BSTR DPN_SEPARATOR_USERDATA = L"#";
  1299. const BSTR DPN_SEPARATOR_COMPONENT = L";";
  1300. const BSTR DPN_ESCAPECHAR = L"%";
  1301. // Header
  1302. const BSTR DPN_HEADER = L"x-directplay:/";
  1303. const BSTR DPN_VALUE_TCPIPPROVIDER = L"IP";
  1304. const BSTR DPN_VALUE_IPXPROVIDER = L"IPX";
  1305. const BSTR DPN_VALUE_MODEMPROVIDER = L"MODEM";
  1306. const BSTR DPN_VALUE_SERIALPROVIDER = L"SERIAL";
  1307. const BSTR DP8SP_TCPIP = L"CLSID_DP8SP_TCPIP";
  1308. const BSTR DP8SP_IPX = L"CLSID_DP8SP_IPX";
  1309. const BSTR DP8SP_MODEM = L"CLSID_DP8SP_MODEM";
  1310. const BSTR DP8SP_SERIAL = L"CLSID_DP8SP_SERIAL";
  1311. const BSTR DSDEVID_DEFAULTPLAYBACK = L"DSDEVID_DEFAULTPLAYBACK";
  1312. const BSTR DSDEVID_DEFAULTCAPTURE = L"DSDEVID_DEFAULTCAPTURE";
  1313. const BSTR DSDEVID_DEFAULTVOICEPLAYBACK = L"DSDEVID_DEFAULTVOICEPLAYBACK";
  1314. const BSTR DSDEVID_DEFAULTVOICECAPTURE = L"DSDEVID_DEFAULTVOICECAPTURE";
  1315. };
  1316. #define CALLTYPE _stdcall
  1317. [
  1318. dllname("dx8vb.dll")
  1319. ]
  1320. module DPLAYBUFFER_HELPER
  1321. {
  1322. [entry(120),helpcontext(79152)] HRESULT CALLTYPE NewBuffer([in,out] SAFEARRAY(BYTE) *Buffer, [out,retval] LONG *lOffSet);
  1323. [entry(121),helpcontext(79153)] HRESULT CALLTYPE AddDataToBuffer([in,out] SAFEARRAY(BYTE) *Buffer, [in] void *lData, [in] DWORD lSize, [in,out] LONG *lOffSet);
  1324. [entry(122),helpcontext(79154)] HRESULT CALLTYPE AddStringToBuffer([in,out] SAFEARRAY(BYTE) *Buffer, [in] BSTR StringData, [in,out] LONG *lOffSet);
  1325. [entry(123),helpcontext(79155)] HRESULT CALLTYPE GetDataFromBuffer([in] SAFEARRAY(BYTE) *Buffer, [in] void *lData, [in] DWORD lSize, [in,out] LONG *lOffSet);
  1326. [entry(124),helpcontext(79156)] HRESULT CALLTYPE GetStringFromBuffer([in] SAFEARRAY(BYTE) *Buffer, [in,out] LONG *lOffSet, [out,retval] BSTR *sData);
  1327. };