1 #ifndef __DSCONF_INCLUDED__
2 #define __DSCONF_INCLUDED__
4 #ifndef __DSOUND_INCLUDED__
5 #error dsound.h not included
12 DEFINE_GUID(CLSID_DirectSoundPrivate
, 0x11AB3EC0, 0x25EC, 0x11D1, 0xA4, 0xD8, 0x0, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA);
13 DEFINE_GUID(DSPROPSETID_DirectSoundDevice
, 0x84624F82, 0x25EC, 0x11D1, 0xA4, 0xD8, 0x0, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA);
17 DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
= 1,
18 DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1
= 2,
19 DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1
= 3,
20 DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
= 4,
21 DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
= 5,
22 DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
= 6,
23 DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
= 7,
24 DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
= 8,
25 } DSPROPERTY_DIRECTSOUNDDEVICE
;
29 DIRECTSOUNDDEVICE_TYPE_EMULATED
,
30 DIRECTSOUNDDEVICE_TYPE_VXD
,
31 DIRECTSOUNDDEVICE_TYPE_WDM
32 } DIRECTSOUNDDEVICE_TYPE
;
36 DIRECTSOUNDDEVICE_DATAFLOW_RENDER
,
37 DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
38 } DIRECTSOUNDDEVICE_DATAFLOW
;
40 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
43 DIRECTSOUNDDEVICE_DATAFLOW DataFlow
;
45 } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
;
47 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
50 DIRECTSOUNDDEVICE_DATAFLOW DataFlow
;
52 } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
;
54 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
57 CHAR DescriptionA
[0x100];
58 WCHAR DescriptionW
[0x100];
59 CHAR ModuleA
[MAX_PATH
];
60 WCHAR ModuleW
[MAX_PATH
];
61 DIRECTSOUNDDEVICE_TYPE Type
;
62 DIRECTSOUNDDEVICE_DATAFLOW DataFlow
;
65 } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
;
67 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
69 DIRECTSOUNDDEVICE_TYPE Type
;
70 DIRECTSOUNDDEVICE_DATAFLOW DataFlow
;
76 } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
;
78 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
80 DIRECTSOUNDDEVICE_TYPE Type
;
81 DIRECTSOUNDDEVICE_DATAFLOW DataFlow
;
87 } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
;
89 #if DIRECTSOUND_VERSION >= 0x0700
91 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
92 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
93 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
94 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
95 #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
97 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
98 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
99 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
100 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
101 #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
104 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
105 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1
106 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1
107 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
108 #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
112 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
113 #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
115 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
116 #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
119 typedef BOOL (CALLBACK
*LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1
)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
, LPVOID
);
120 typedef BOOL (CALLBACK
*LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA
)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
, LPVOID
);
121 typedef BOOL (CALLBACK
*LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW
)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
, LPVOID
);
123 #if DIRECTSOUND_VERSION >= 0x0700
125 #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW
127 #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA
130 #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1
133 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
135 LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback
;
137 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
;
139 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
141 LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback
;
143 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
;
145 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
147 LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback
;
149 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
;
151 #if DIRECTSOUND_VERSION >= 0x0700
153 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
154 #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
156 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
157 #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
160 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
161 #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA