471 lines
21 KiB
C
471 lines
21 KiB
C
|
/*==========================================================================;
|
||
|
*
|
||
|
* 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__
|