Source code of Windows XP (NT5)
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.

389 lines
17 KiB

  1. /*==========================================================================;
  2. *
  3. * Copyright (C) 1995-1998 Microsoft Corporation. All Rights Reserved.
  4. *
  5. * File: dsprv.h
  6. * Content: DirectSound include file
  7. *@@BEGIN_MSINTERNAL
  8. * History:
  9. * Date By Reason
  10. * ==== == ======
  11. * 8/19/98 dereks Created.
  12. *@@END_MSINTERNAL
  13. *
  14. **************************************************************************/
  15. #ifndef __DSPRV_INCLUDED__
  16. #define __DSPRV_INCLUDED__
  17. #ifndef __DSOUND_INCLUDED__
  18. #error dsound.h not included
  19. #endif // __DSOUND_INCLUDED__
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif // __cplusplus
  23. // DirectSound Private Component GUID {11AB3EC0-25EC-11d1-A4D8-00C04FC28ACA}
  24. DEFINE_GUID(CLSID_DirectSoundPrivate, 0x11ab3ec0, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);
  25. //
  26. // DirectSound Mixer Properties {84624F80-25EC-11d1-A4D8-00C04FC28ACA}
  27. //
  28. DEFINE_GUID(DSPROPSETID_DirectSoundMixer, 0x84624f80, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);
  29. typedef enum
  30. {
  31. DSPROPERTY_DIRECTSOUNDMIXER_SRCQUALITY,
  32. DSPROPERTY_DIRECTSOUNDMIXER_ACCELERATION,
  33. } DSPROPERTY_DIRECTSOUNDMIXER;
  34. typedef enum
  35. {
  36. DIRECTSOUNDMIXER_SRCQUALITY_WORST,
  37. DIRECTSOUNDMIXER_SRCQUALITY_PC,
  38. DIRECTSOUNDMIXER_SRCQUALITY_BASIC,
  39. DIRECTSOUNDMIXER_SRCQUALITY_ADVANCED,
  40. } DIRECTSOUNDMIXER_SRCQUALITY;
  41. #define DIRECTSOUNDMIXER_SRCQUALITY_DEFAULT DIRECTSOUNDMIXER_SRCQUALITY_PC
  42. typedef struct _DSPROPERTY_DIRECTSOUNDMIXER_SRCQUALITY_DATA
  43. {
  44. GUID DeviceId; // DirectSound device id
  45. DIRECTSOUNDMIXER_SRCQUALITY Quality; // SRC quality
  46. } DSPROPERTY_DIRECTSOUNDMIXER_SRCQUALITY_DATA, *PDSPROPERTY_DIRECTSOUNDMIXER_SRCQUALITY_DATA;
  47. #define DIRECTSOUNDMIXER_ACCELERATIONF_NORING0MIX 0x00000001
  48. #define DIRECTSOUNDMIXER_ACCELERATIONF_NOHWBUFFERS 0x00000002
  49. #define DIRECTSOUNDMIXER_ACCELERATIONF_NOHW3D 0x00000004
  50. #define DIRECTSOUNDMIXER_ACCELERATIONF_NOHWPROPSETS 0x00000008
  51. #define DIRECTSOUNDMIXER_ACCELERATIONF_FULL 0x00000000
  52. #define DIRECTSOUNDMIXER_ACCELERATIONF_STANDARD 0x00000008
  53. #define DIRECTSOUNDMIXER_ACCELERATIONF_NONE 0x0000000F
  54. #define DIRECTSOUNDMIXER_ACCELERATIONF_DEFAULT DIRECTSOUNDMIXER_ACCELERATIONF_STANDARD
  55. typedef struct _DSPROPERTY_DIRECTSOUNDMIXER_ACCELERATION_DATA
  56. {
  57. GUID DeviceId; // DirectSound device id
  58. ULONG Flags; // Acceleration flags
  59. } DSPROPERTY_DIRECTSOUNDMIXER_ACCELERATION_DATA, *PDSPROPERTY_DIRECTSOUNDMIXER_ACCELERATION_DATA;
  60. //
  61. // DirectSound Device Properties {84624F82-25EC-11d1-A4D8-00C04FC28ACA}
  62. //
  63. DEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624f82, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);
  64. typedef enum
  65. {
  66. DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE,
  67. DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A,
  68. DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1,
  69. DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1,
  70. DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W,
  71. DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A,
  72. DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W,
  73. DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A,
  74. DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W,
  75. } DSPROPERTY_DIRECTSOUNDDEVICE;
  76. #if DIRECTSOUND_VERSION >= 0x0700
  77. #ifdef UNICODE
  78. #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
  79. #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
  80. #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
  81. #else // UNICODE
  82. #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
  83. #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
  84. #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
  85. #endif // UNICODE
  86. #else // DIRECTSOUND_VERSION >= 0x0700
  87. #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
  88. #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1
  89. #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1
  90. #endif // DIRECTSOUND_VERSION >= 0x0700
  91. typedef enum
  92. {
  93. DIRECTSOUNDDEVICE_TYPE_EMULATED,
  94. DIRECTSOUNDDEVICE_TYPE_VXD,
  95. DIRECTSOUNDDEVICE_TYPE_WDM
  96. } DIRECTSOUNDDEVICE_TYPE;
  97. typedef enum
  98. {
  99. DIRECTSOUNDDEVICE_DATAFLOW_RENDER,
  100. DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
  101. } DIRECTSOUNDDEVICE_DATAFLOW;
  102. typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_DATA
  103. {
  104. GUID DeviceId; // DirectSound device id
  105. BOOL Present; // Presence switch
  106. } DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_DATA;
  107. typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
  108. {
  109. LPSTR DeviceName; // waveIn/waveOut device name
  110. DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Data flow (i.e. waveIn or waveOut)
  111. GUID DeviceId; // DirectSound device id
  112. } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA;
  113. typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
  114. {
  115. LPWSTR DeviceName; // waveIn/waveOut device name
  116. DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Data flow (i.e. waveIn or waveOut)
  117. GUID DeviceId; // DirectSound device id
  118. } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA;
  119. #ifdef UNICODE
  120. #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
  121. #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
  122. #else // UNICODE
  123. #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
  124. #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
  125. #endif // UNICODE
  126. typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
  127. {
  128. GUID DeviceId; // DirectSound device id
  129. CHAR DescriptionA[0x100]; // Device description (ANSI)
  130. WCHAR DescriptionW[0x100]; // Device description (Unicode)
  131. CHAR ModuleA[MAX_PATH]; // Device driver module (ANSI)
  132. WCHAR ModuleW[MAX_PATH]; // Device driver module (Unicode)
  133. DIRECTSOUNDDEVICE_TYPE Type; // Device type
  134. DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow
  135. ULONG WaveDeviceId; // Wave device id
  136. ULONG Devnode; // Devnode (or DevInst)
  137. } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA;
  138. typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
  139. {
  140. DIRECTSOUNDDEVICE_TYPE Type; // Device type
  141. DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow
  142. GUID DeviceId; // DirectSound device id
  143. LPSTR Description; // Device description
  144. LPSTR Module; // Device driver module
  145. LPSTR Interface; // Device interface
  146. ULONG WaveDeviceId; // Wave device id
  147. } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA;
  148. typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
  149. {
  150. DIRECTSOUNDDEVICE_TYPE Type; // Device type
  151. DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow
  152. GUID DeviceId; // DirectSound device id
  153. LPWSTR Description; // Device description
  154. LPWSTR Module; // Device driver module
  155. LPWSTR Interface; // Device interface
  156. ULONG WaveDeviceId; // Wave device id
  157. } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA;
  158. #if DIRECTSOUND_VERSION >= 0x0700
  159. #ifdef UNICODE
  160. #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
  161. #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
  162. #else // UNICODE
  163. #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
  164. #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
  165. #endif // UNICODE
  166. #else // DIRECTSOUND_VERSION >= 0x0700
  167. #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
  168. #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
  169. #endif // DIRECTSOUND_VERSION >= 0x0700
  170. typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID);
  171. typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID);
  172. typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID);
  173. #if DIRECTSOUND_VERSION >= 0x0700
  174. #ifdef UNICODE
  175. #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW
  176. #else // UNICODE
  177. #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA
  178. #endif // UNICODE
  179. #else // DIRECTSOUND_VERSION >= 0x0700
  180. #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1
  181. #endif // DIRECTSOUND_VERSION >= 0x0700
  182. typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
  183. {
  184. LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback; // Callback function pointer
  185. LPVOID Context; // Callback function context argument
  186. } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA;
  187. typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
  188. {
  189. LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback; // Callback function pointer
  190. LPVOID Context; // Callback function context argument
  191. } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA;
  192. typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
  193. {
  194. LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback; // Callback function pointer
  195. LPVOID Context; // Callback function context argument
  196. } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA;
  197. #if DIRECTSOUND_VERSION >= 0x0700
  198. #ifdef UNICODE
  199. #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
  200. #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
  201. #else // UNICODE
  202. #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
  203. #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
  204. #endif // UNICODE
  205. #else // DIRECTSOUND_VERSION >= 0x0700
  206. #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
  207. #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
  208. #endif // DIRECTSOUND_VERSION >= 0x0700
  209. //
  210. // Basic DirectSound Acceleration Properties {1AEAA606-35F0-11D1-B161-00C04FC28ACA}
  211. //
  212. DEFINE_GUID(DSPROPSETID_DirectSoundBasicAcceleration, 0x1aeaa606, 0x35f0, 0x11d1, 0xb1, 0x61, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);
  213. typedef enum
  214. {
  215. DSPROPERTY_DIRECTSOUNDBASICACCELERATION_ACCELERATION,
  216. } DSPROPERTY_DIRECTSOUNDBASICACCELERATION;
  217. typedef enum
  218. {
  219. DIRECTSOUNDBASICACCELERATION_NONE,
  220. DIRECTSOUNDBASICACCELERATION_SAFE,
  221. DIRECTSOUNDBASICACCELERATION_STANDARD,
  222. DIRECTSOUNDBASICACCELERATION_FULL,
  223. } DIRECTSOUNDBASICACCELERATION_LEVEL;
  224. #define DIRECTSOUNDBASICACCELERATION_DEFAULT DIRECTSOUNDBASICACCELERATION_FULL
  225. typedef struct _DSPROPERTY_DIRECTSOUNDBASICACCELERATION_ACCELERATION_DATA
  226. {
  227. GUID DeviceId; // DirectSound device id
  228. DIRECTSOUNDBASICACCELERATION_LEVEL Level; // Basic acceleration level
  229. } DSPROPERTY_DIRECTSOUNDBASICACCELERATION_ACCELERATION_DATA, *PDSPROPERTY_DIRECTSOUNDBASICACCELERATION_ACCELERATION_DATA;
  230. //
  231. // DirectSound Debug Properties {F2957840-260C-11d1-A4D8-00C04FC28ACA}
  232. //
  233. DEFINE_GUID(DSPROPSETID_DirectSoundDebug, 0xf2957840, 0x260c, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);
  234. typedef enum
  235. {
  236. DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A,
  237. DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W,
  238. } DSPROPERTY_DIRECTSOUNDDEBUG;
  239. #ifdef UNICODE
  240. #define DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W
  241. #else // UNICODE
  242. #define DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A
  243. #endif // UNICODE
  244. #define DIRECTSOUNDDEBUG_DPFINFOF_PRINTFUNCTIONNAME 0x00000001
  245. #define DIRECTSOUNDDEBUG_DPFINFOF_PRINTPROCESSTHREADID 0x00000002
  246. #define DIRECTSOUNDDEBUG_DPFINFOF_PRINTFILELINE 0x00000004
  247. #define DIRECTSOUNDDEBUG_DPFINFOF_DEFAULT DIRECTSOUNDDEBUG_DPFINFOF_PRINTFUNCTIONNAME
  248. typedef struct _DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA
  249. {
  250. ULONG Flags; // DPF flags
  251. ULONG DpfLevel; // DPF level
  252. ULONG BreakLevel; // Break level
  253. CHAR LogFile[MAX_PATH]; // Log file
  254. } DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA;
  255. typedef struct _DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA
  256. {
  257. ULONG Flags; // DPF flags
  258. ULONG DpfLevel; // DPF level
  259. ULONG BreakLevel; // Break level
  260. WCHAR LogFile[MAX_PATH]; // Log file
  261. } DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA;
  262. #ifdef UNICODE
  263. #define DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_DATA DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA
  264. #define PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_DATA PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA
  265. #else // UNICODE
  266. #define DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_DATA DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA
  267. #define PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_DATA PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA
  268. #endif // UNICODE
  269. #define DIRECTSOUNDDEBUG_DPFLEVEL_DEFAULT 2
  270. #define DIRECTSOUNDDEBUG_BREAKLEVEL_DEFAULT 0
  271. //
  272. // DirectSound Persistent Data {1BE55C3E-36AB-11d1-B162-00C04FC28ACA}
  273. //
  274. DEFINE_GUID(DSPROPSETID_DirectSoundPersistentData, 0x1be55c3e, 0x36ab, 0x11d1, 0xb1, 0x62, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);
  275. typedef enum
  276. {
  277. DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A,
  278. DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W,
  279. } DSPROPERTY_DIRECTSOUNDPERSISTENTDATA;
  280. #ifdef UNICODE
  281. #define DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W
  282. #else // UNICODE
  283. #define DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A
  284. #endif // UNICODE
  285. typedef struct _DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA
  286. {
  287. GUID DeviceId; // DirectSound device id
  288. LPSTR SubKeyName; // Optional subkey name
  289. LPSTR ValueName; // Value name
  290. ULONG RegistryDataType; // Data type
  291. LPVOID Data; // Data pointer
  292. ULONG DataSize; // Size of data buffer, in bytes
  293. } DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA, *PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA;
  294. typedef struct _DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA
  295. {
  296. GUID DeviceId; // DirectSound device id
  297. LPWSTR SubKeyName; // Optional subkey name
  298. LPWSTR ValueName; // Value name
  299. ULONG RegistryDataType; // Data type
  300. LPVOID Data; // Data pointer
  301. ULONG DataSize; // Size of data buffer, in bytes
  302. } DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA, *PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA;
  303. #ifdef UNICODE
  304. #define DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_DATA DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA
  305. #define PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_DATA PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA
  306. #else // UNICODE
  307. #define DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_DATA DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA
  308. #define PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_DATA PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA
  309. #endif // UNICODE
  310. //
  311. // DirectSound Buffer Properties {50393DEA-51AD-11d2-91B2-00C04FC28ACA}
  312. //
  313. DEFINE_GUID(DSPROPSETID_DirectSoundBuffer, 0x50393dea, 0x51ad, 0x11d2, 0x91, 0xb2, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);
  314. typedef enum
  315. {
  316. DSPROPERTY_DIRECTSOUNDBUFFER_DEVICEID,
  317. } DSPROPERTY_DIRECTSOUNDBUFFER;
  318. typedef struct _DSPROPERTY_DIRECTSOUNDBUFFER_DEVICEID_DATA
  319. {
  320. LPDIRECTSOUNDBUFFER Buffer; // Buffer object pointer
  321. GUID DeviceId; // DirectSound device ID
  322. } DSPROPERTY_DIRECTSOUNDBUFFER_DEVICEID_DATA, *PDSPROPERTY_DIRECTSOUNDBUFFER_DEVICEID_DATA;
  323. #ifdef __cplusplus
  324. }
  325. #endif // __cplusplus
  326. #endif // __DSPRV_INCLUDED__