|
|
/*==========================================================================;
* * Copyright (c) Microsoft Corporation. All rights reserved. * * File: dsconf.h * Content: DirectSound configuration interface include file *@@BEGIN_MSINTERNAL * History: * Date By Reason * ==== == ====== * 8/19/1998 dereks Created. * 10/3/2001 duganp Added the comments below. * * Description: * * This file provides an internal interface to certain parts of * DirectSound's state and configuration, for use by other groups * within Microsoft. Currently it is used by RTC, DirectPlayVoice, * mmsys.cpl, dxdiag.exe, and various internal test apps. * * There is sample code demonstrating how to use this interface in * multimedia\directx\dsound\dsound\dsmgr. * * This interface is not public because it provides some low-level * "plumbing" functionality which is only of use to other MS APIs * that interact with DirectSound. Eventually this functionality * will be rolled into new audio APIs and the need for backdoors * will disappear. * * IMPORTANT NOTE: If you plan to use this interface, watch out for * the two CONFLICTING definitions of IKsPropertySet in our headers. * The correct IKsPropertySet has a Get() method first and then a * Set() method (as defined in dsound.h and various other places). * The other IKsPropertySet has Set() before Get() (as defined in * ksproxy.h and various other places). If you pull in the wrong * definition of IKsPropertySet, your vtable won't match dsound's * and your method calls will fail. * *@@END_MSINTERNAL * **************************************************************************/
#ifndef __DSCONF_INCLUDED__
#define __DSCONF_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);
//@@BEGIN_MSINTERNAL
//
// 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;
//@@END_MSINTERNAL
//
// 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 { //@@BEGIN_MSINTERNAL
DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_1 = 0, //@@END_MSINTERNAL
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A = 1, DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 = 2, DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 = 3, DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W = 4, DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A = 5, DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W = 6, DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A = 7, DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W = 8, //@@BEGIN_MSINTERNAL
DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE = 9, DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING_A = 10, DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING_W = 11, //@@END_MSINTERNAL
} DSPROPERTY_DIRECTSOUNDDEVICE;
#if DIRECTSOUND_VERSION >= 0x0700
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
//@@BEGIN_MSINTERNAL
#define DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING_W
//@@END_MSINTERNAL
#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
//@@BEGIN_MSINTERNAL
#define DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING_A
//@@END_MSINTERNAL
#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
//@@BEGIN_MSINTERNAL
#define DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING_A
//@@END_MSINTERNAL
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1
//@@BEGIN_MSINTERNAL
#define DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE DSPROPERTY_DIRECTSOUNDDEVICE_PRESENCE_1
//@@END_MSINTERNAL
#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;
//@@BEGIN_MSINTERNAL
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
//@@END_MSINTERNAL
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; //@@BEGIN_MSINTERNAL
typedef DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING_A_DATA; //@@END_MSINTERNAL
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; //@@BEGIN_MSINTERNAL
typedef DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA DSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_USERWAVEDEVICEMAPPING_W_DATA; //@@END_MSINTERNAL
#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
//@@BEGIN_MSINTERNAL
//
// 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;
//@@END_MSINTERNAL
#ifdef __cplusplus
} #endif // __cplusplus
#endif // __DSCONF_INCLUDED__
|