/*==========================================================================; * * Copyright (C) 1995-1998 Microsoft Corporation. All Rights Reserved. * * File: dsprv.h * Content: DirectSound include file *@@BEGIN_MSINTERNAL * History: * Date By Reason * ==== == ====== * 8/19/98 dereks Created. *@@END_MSINTERNAL * **************************************************************************/ #ifndef __DSPRV_INCLUDED__ #define __DSPRV_INCLUDED__ #ifndef __DSOUND_INCLUDED__ #error dsound.h not included #endif // __DSOUND_INCLUDED__ #ifdef __cplusplus extern "C" { #endif // __cplusplus // DirectSound Private Component GUID {11AB3EC0-25EC-11d1-A4D8-00C04FC28ACA} DEFINE_GUID(CLSID_DirectSoundPrivate, 0x11ab3ec0, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); // // DirectSound Mixer Properties {84624F80-25EC-11d1-A4D8-00C04FC28ACA} // DEFINE_GUID(DSPROPSETID_DirectSoundMixer, 0x84624f80, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); typedef enum { DSPROPERTY_DIRECTSOUNDMIXER_SRCQUALITY, DSPROPERTY_DIRECTSOUNDMIXER_ACCELERATION, } DSPROPERTY_DIRECTSOUNDMIXER; typedef enum { DIRECTSOUNDMIXER_SRCQUALITY_WORST, DIRECTSOUNDMIXER_SRCQUALITY_PC, DIRECTSOUNDMIXER_SRCQUALITY_BASIC, DIRECTSOUNDMIXER_SRCQUALITY_ADVANCED, } DIRECTSOUNDMIXER_SRCQUALITY; #define DIRECTSOUNDMIXER_SRCQUALITY_DEFAULT DIRECTSOUNDMIXER_SRCQUALITY_ADVANCED typedef struct _DSPROPERTY_DIRECTSOUNDMIXER_SRCQUALITY_DATA { GUID DeviceId; // DirectSound device id DIRECTSOUNDMIXER_SRCQUALITY Quality; // SRC quality } DSPROPERTY_DIRECTSOUNDMIXER_SRCQUALITY_DATA, *PDSPROPERTY_DIRECTSOUNDMIXER_SRCQUALITY_DATA; #define DIRECTSOUNDMIXER_ACCELERATIONF_NORING0MIX 0x00000001 #define DIRECTSOUNDMIXER_ACCELERATIONF_NOHWBUFFERS 0x00000002 #define DIRECTSOUNDMIXER_ACCELERATIONF_NOHW3D 0x00000004 #define DIRECTSOUNDMIXER_ACCELERATIONF_NOHWPROPSETS 0x00000008 #define DIRECTSOUNDMIXER_ACCELERATIONF_FULL 0x00000000 #define DIRECTSOUNDMIXER_ACCELERATIONF_STANDARD 0x00000008 #define DIRECTSOUNDMIXER_ACCELERATIONF_NONE 0x0000000F #ifdef WINNT #define DIRECTSOUNDMIXER_ACCELERATIONF_DEFAULT DIRECTSOUNDMIXER_ACCELERATIONF_STANDARD #else // WINNT #define DIRECTSOUNDMIXER_ACCELERATIONF_DEFAULT DIRECTSOUNDMIXER_ACCELERATIONF_FULL #endif // WINNT typedef struct _DSPROPERTY_DIRECTSOUNDMIXER_ACCELERATION_DATA { GUID DeviceId; // DirectSound device id ULONG Flags; // Acceleration flags } DSPROPERTY_DIRECTSOUNDMIXER_ACCELERATION_DATA, *PDSPROPERTY_DIRECTSOUNDMIXER_ACCELERATION_DATA; // // DirectSound Device Properties {84624F82-25EC-11d1-A4D8-00C04FC28ACA} // DEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624f82, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); typedef enum { DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_1, DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A, DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1, DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1, DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W, DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A, DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W, DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A, DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W, DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE } DSPROPERTY_DIRECTSOUNDDEVICE; #if DIRECTSOUND_VERSION >= 0x0700 #ifdef UNICODE #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W #else // UNICODE #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A #endif // UNICODE #else // DIRECTSOUND_VERSION >= 0x0700 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 #define DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_1 #endif // DIRECTSOUND_VERSION >= 0x0700 typedef enum { DIRECTSOUNDDEVICE_TYPE_EMULATED, DIRECTSOUNDDEVICE_TYPE_VXD, DIRECTSOUNDDEVICE_TYPE_WDM } DIRECTSOUNDDEVICE_TYPE; typedef enum { DIRECTSOUNDDEVICE_DATAFLOW_RENDER, DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE } DIRECTSOUNDDEVICE_DATAFLOW; typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_1_DATA { GUID DeviceId; // DirectSound device id BOOL Present; // Presence switch } DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_1_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_DATA { GUID DeviceId; // DirectSound device id DIRECTSOUNDDEVICE_TYPE DeviceType; // Device type BOOL Present; // Presence switch } DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_DATA; #if DIRECTSOUND_VERSION < 0x0700 #define DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_1_DATA #define PDSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_1_DATA #endif // DIRECTSOUND_VERSION < 0x0700 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA { LPSTR DeviceName; // waveIn/waveOut device name DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Data flow (i.e. waveIn or waveOut) GUID DeviceId; // DirectSound device id } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA { LPWSTR DeviceName; // waveIn/waveOut device name DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Data flow (i.e. waveIn or waveOut) GUID DeviceId; // DirectSound device id } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA; #ifdef UNICODE #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA #else // UNICODE #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA #endif // UNICODE typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA { GUID DeviceId; // DirectSound device id CHAR DescriptionA[0x100]; // Device description (ANSI) WCHAR DescriptionW[0x100]; // Device description (Unicode) CHAR ModuleA[MAX_PATH]; // Device driver module (ANSI) WCHAR ModuleW[MAX_PATH]; // Device driver module (Unicode) DIRECTSOUNDDEVICE_TYPE Type; // Device type DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow ULONG WaveDeviceId; // Wave device id ULONG Devnode; // Devnode (or DevInst) } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA { DIRECTSOUNDDEVICE_TYPE Type; // Device type DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow GUID DeviceId; // DirectSound device id LPSTR Description; // Device description LPSTR Module; // Device driver module LPSTR Interface; // Device interface ULONG WaveDeviceId; // Wave device id } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA { DIRECTSOUNDDEVICE_TYPE Type; // Device type DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow GUID DeviceId; // DirectSound device id LPWSTR Description; // Device description LPWSTR Module; // Device driver module LPWSTR Interface; // Device interface ULONG WaveDeviceId; // Wave device id } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA; #if DIRECTSOUND_VERSION >= 0x0700 #ifdef UNICODE #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA #else // UNICODE #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA #endif // UNICODE #else // DIRECTSOUND_VERSION >= 0x0700 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA #endif // DIRECTSOUND_VERSION >= 0x0700 typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID); typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID); typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID); #if DIRECTSOUND_VERSION >= 0x0700 #ifdef UNICODE #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW #else // UNICODE #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA #endif // UNICODE #else // DIRECTSOUND_VERSION >= 0x0700 #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 #endif // DIRECTSOUND_VERSION >= 0x0700 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA { LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback; // Callback function pointer LPVOID Context; // Callback function context argument } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA { LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback; // Callback function pointer LPVOID Context; // Callback function context argument } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA { LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback; // Callback function pointer LPVOID Context; // Callback function context argument } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA; #if DIRECTSOUND_VERSION >= 0x0700 #ifdef UNICODE #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA #else // UNICODE #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA #endif // UNICODE #else // DIRECTSOUND_VERSION >= 0x0700 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA #endif // DIRECTSOUND_VERSION >= 0x0700 // // Basic DirectSound Acceleration Properties {1AEAA606-35F0-11D1-B161-00C04FC28ACA} // DEFINE_GUID(DSPROPSETID_DirectSoundBasicAcceleration, 0x1aeaa606, 0x35f0, 0x11d1, 0xb1, 0x61, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); typedef enum { DSPROPERTY_DIRECTSOUNDBASICACCELERATION_ACCELERATION, DSPROPERTY_DIRECTSOUNDBASICACCELERATION_DEFAULT, } DSPROPERTY_DIRECTSOUNDBASICACCELERATION; typedef enum { DIRECTSOUNDBASICACCELERATION_NONE, DIRECTSOUNDBASICACCELERATION_SAFE, DIRECTSOUNDBASICACCELERATION_STANDARD, DIRECTSOUNDBASICACCELERATION_FULL, } DIRECTSOUNDBASICACCELERATION_LEVEL; typedef struct _DSPROPERTY_DIRECTSOUNDBASICACCELERATION_ACCELERATION_DATA { GUID DeviceId; // DirectSound device id DIRECTSOUNDBASICACCELERATION_LEVEL Level; // Basic acceleration level } DSPROPERTY_DIRECTSOUNDBASICACCELERATION_ACCELERATION_DATA, *PDSPROPERTY_DIRECTSOUNDBASICACCELERATION_ACCELERATION_DATA, DSPROPERTY_DIRECTSOUNDBASICACCELERATION_DEFAULT_DATA, *PDSPROPERTY_DIRECTSOUNDBASICACCELERATION_DEFAULT_DATA; // // DirectSound Debug Properties {F2957840-260C-11d1-A4D8-00C04FC28ACA} // DEFINE_GUID(DSPROPSETID_DirectSoundDebug, 0xf2957840, 0x260c, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); typedef enum { DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A, DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W, DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_A, DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_W, } DSPROPERTY_DIRECTSOUNDDEBUG; #ifdef UNICODE #define DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W #define DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_W #else // UNICODE #define DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A #define DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_A #endif // UNICODE #define DIRECTSOUNDDEBUG_DPFINFOF_PRINTFUNCTIONNAME 0x00000001 #define DIRECTSOUNDDEBUG_DPFINFOF_PRINTPROCESSTHREADID 0x00000002 #define DIRECTSOUNDDEBUG_DPFINFOF_PRINTFILELINE 0x00000004 #define DIRECTSOUNDDEBUG_DPFINFOF_LOGTOFILEONLY 0x00000008 #define DIRECTSOUNDDEBUG_DPFINFOF_DEFAULT DIRECTSOUNDDEBUG_DPFINFOF_PRINTFUNCTIONNAME typedef struct _DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA { ULONG Flags; // DPF flags ULONG DpfLevel; // DPF level ULONG BreakLevel; // Break level CHAR LogFile[MAX_PATH]; // Log file } DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA { ULONG Flags; // DPF flags ULONG DpfLevel; // DPF level ULONG BreakLevel; // Break level WCHAR LogFile[MAX_PATH]; // Log file } DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_A_DATA { HRESULT ResultCode; // Result code LPSTR String; // Result code in string form LPSTR Explanation; // Result code description } DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_A_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_W_DATA { HRESULT ResultCode; // Result code LPWSTR String; // Result code in string form LPWSTR Explanation; // Result code description } DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_W_DATA; #ifdef UNICODE #define DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_DATA DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA #define PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_DATA PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_W_DATA #define DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_DATA DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_W_DATA #define PDSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_DATA PDSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_W_DATA #else // UNICODE #define DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_DATA DSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA #define PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_DATA PDSPROPERTY_DIRECTSOUNDDEBUG_DPFINFO_A_DATA #define DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_DATA DSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_A_DATA #define PDSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_DATA PDSPROPERTY_DIRECTSOUNDDEBUG_TRANSLATERESULTCODE_A_DATA #endif // UNICODE #define DIRECTSOUNDDEBUG_DPFLEVEL_DEFAULT 0 #define DIRECTSOUNDDEBUG_BREAKLEVEL_DEFAULT 0 // // DirectSound Persistent Data {1BE55C3E-36AB-11d1-B162-00C04FC28ACA} // DEFINE_GUID(DSPROPSETID_DirectSoundPersistentData, 0x1be55c3e, 0x36ab, 0x11d1, 0xb1, 0x62, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); typedef enum { DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A, DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W, } DSPROPERTY_DIRECTSOUNDPERSISTENTDATA; #ifdef UNICODE #define DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W #else // UNICODE #define DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A #endif // UNICODE typedef struct _DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA { GUID DeviceId; // DirectSound device id LPSTR SubKeyName; // Optional subkey name LPSTR ValueName; // Value name ULONG RegistryDataType; // Data type LPVOID Data; // Data pointer ULONG DataSize; // Size of data buffer, in bytes } DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA, *PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA; typedef struct _DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA { GUID DeviceId; // DirectSound device id LPWSTR SubKeyName; // Optional subkey name LPWSTR ValueName; // Value name ULONG RegistryDataType; // Data type LPVOID Data; // Data pointer ULONG DataSize; // Size of data buffer, in bytes } DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA, *PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA; #ifdef UNICODE #define DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_DATA DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA #define PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_DATA PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_W_DATA #else // UNICODE #define DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_DATA DSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA #define PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_DATA PDSPROPERTY_DIRECTSOUNDPERSISTENTDATA_PERSISTDATA_A_DATA #endif // UNICODE // // DirectSound Buffer Properties {50393DEA-51AD-11d2-91B2-00C04FC28ACA} // DEFINE_GUID(DSPROPSETID_DirectSoundBuffer, 0x50393dea, 0x51ad, 0x11d2, 0x91, 0xb2, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); typedef enum { DSPROPERTY_DIRECTSOUNDBUFFER_DEVICEID, } DSPROPERTY_DIRECTSOUNDBUFFER; typedef struct _DSPROPERTY_DIRECTSOUNDBUFFER_DEVICEID_DATA { LPDIRECTSOUNDBUFFER Buffer; // Buffer object pointer GUID DeviceId; // DirectSound device ID } DSPROPERTY_DIRECTSOUNDBUFFER_DEVICEID_DATA, *PDSPROPERTY_DIRECTSOUNDBUFFER_DEVICEID_DATA; // // DirectSound Object Properties {4BE334F0-1C8E-4D91-8C17-5889D6F0B154} // DEFINE_GUID(DSPROPSETID_DirectSound, 0x4be334f0, 0x1c8e, 0x4d91, 0x8c, 0x17, 0x58, 0x89, 0xd6, 0xf0, 0xb1, 0x54); typedef enum { DSPROPERTY_DIRECTSOUND_OBJECTS, DSPROPERTY_DIRECTSOUNDCAPTURE_OBJECTS } DSPROPERTY_DIRECTSOUND; #pragma warning(disable:4200) // Disable the nag about the Objects[0] arrays below typedef struct _DIRECTSOUND_INFO { LPDIRECTSOUND DirectSound; GUID DeviceId; } DIRECTSOUND_INFO; typedef struct _DSPROPERTY_DIRECTSOUND_OBJECTS_DATA { GUID DeviceId; // [in] DirectSound device ID (or GUID_NULL for all DS objects) ULONG Count; // [out] Count of DirectSound objects matching this DeviceId DIRECTSOUND_INFO Objects[0]; // [out] Information about each DirectSound object } DSPROPERTY_DIRECTSOUND_OBJECTS_DATA, *PDSPROPERTY_DIRECTSOUND_OBJECTS_DATA; typedef struct _DIRECTSOUNDCAPTURE_INFO { LPDIRECTSOUNDCAPTURE DirectSoundCapture; GUID DeviceId; } DIRECTSOUNDCAPTURE_INFO; typedef struct _DSPROPERTY_DIRECTSOUNDCAPTURE_OBJECTS_DATA { GUID DeviceId; // [in] DirectSoundCapture device ID (or GUID_NULL for all DSC objects) ULONG Count; // [out] Count of DirectSoundCapture objects matching this DeviceId DIRECTSOUNDCAPTURE_INFO Objects[0]; // [out] Information about each DirectSoundCapture object } DSPROPERTY_DIRECTSOUNDCAPTURE_OBJECTS_DATA, *PDSPROPERTY_DIRECTSOUNDCAPTURE_OBJECTS_DATA; #ifdef __cplusplus } #endif // __cplusplus #endif // __DSPRV_INCLUDED__