Avoid non-alpha characters in _qdgdfv_alnum in win32.
[qdgdf.git] / compat / dsound.h
blob741a82486ef80e5c4f40a3e3677fac2111f129b2
1 #ifndef __dsound_h__
2 #define __dsound_h__
3 #include "d3dtypes.h"
4 #define COM_NO_WINDOWS_H
5 #include <objbase.h>
6 #define _FACDS 2168
7 #define MAKE_DSHRESULT(code) MAKE_HRESULT(1, _FACDS, code)
8 #ifndef DIRECTSOUND_VERSION
9 #define DIRECTSOUND_VERSION 1792
10 #endif
11 DEFINE_GUID(CLSID_DirectSound, 0x47d4d946, 0x62e8, 4559, 147, 188, 68, 69, 83, 84, 0, 0);
12 DEFINE_GUID(CLSID_DirectSoundCapture, 0xb0210780, 0x89cd, 4560, 175, 8, 0, 160, 201, 37, 205, 22);
13 typedef struct IDirectSound *LPDIRECTSOUND;
14 typedef struct IDirectSoundBuffer *LPDIRECTSOUNDBUFFER;
15 typedef struct IDirectSound3DListener *LPDIRECTSOUND3DLISTENER;
16 typedef struct IDirectSound3DBuffer *LPDIRECTSOUND3DBUFFER;
17 typedef struct IDirectSoundCapture *LPDIRECTSOUNDCAPTURE;
18 typedef struct IDirectSoundCaptureBuffer *LPDIRECTSOUNDCAPTUREBUFFER;
19 typedef struct IDirectSoundNotify *LPDIRECTSOUNDNOTIFY;
20 #ifndef _LPCWAVEFORMATEX_DEFINED
21 #define _LPCWAVEFORMATEX_DEFINED
22 #ifndef _WAVEFORMATEX_
23 #define _WAVEFORMATEX_
24 typedef struct tWAVEFORMATEX
26 WORD wFormatTag;
27 WORD nChannels;
28 DWORD nSamplesPerSec;
29 DWORD nAvgBytesPerSec;
30 WORD nBlockAlign;
31 WORD wBitsPerSample;
32 WORD cbSize;
33 } WAVEFORMATEX;
34 typedef WAVEFORMATEX *PWAVEFORMATEX;
35 typedef WAVEFORMATEX *NPWAVEFORMATEX;
36 typedef WAVEFORMATEX *LPWAVEFORMATEX;
37 #define _WAVEFORMATEX_
38 #endif
39 typedef const WAVEFORMATEX *LPCWAVEFORMATEX;
40 #endif
41 #ifndef __LPCGUID_DEFINED__
42 #define __LPCGUID_DEFINED__
43 typedef const GUID *LPCGUID;
44 #endif
45 typedef LPDIRECTSOUND *LPLPDIRECTSOUND;
46 typedef LPDIRECTSOUNDBUFFER *LPLPDIRECTSOUNDBUFFER;
47 typedef LPDIRECTSOUND3DLISTENER *LPLPDIRECTSOUND3DLISTENER;
48 typedef LPDIRECTSOUND3DBUFFER *LPLPDIRECTSOUND3DBUFFER;
49 typedef LPDIRECTSOUNDCAPTURE *LPLPDIRECTSOUNDCAPTURE;
50 typedef LPDIRECTSOUNDCAPTUREBUFFER *LPLPDIRECTSOUNDCAPTUREBUFFER;
51 typedef LPDIRECTSOUNDNOTIFY *LPLPDIRECTSOUNDNOTIFY;
52 typedef struct _DSCAPS
54 DWORD dwSize;
55 DWORD dwFlags;
56 DWORD dwMinSecondarySampleRate;
57 DWORD dwMaxSecondarySampleRate;
58 DWORD dwPrimaryBuffers;
59 DWORD dwMaxHwMixingAllBuffers;
60 DWORD dwMaxHwMixingStaticBuffers;
61 DWORD dwMaxHwMixingStreamingBuffers;
62 DWORD dwFreeHwMixingAllBuffers;
63 DWORD dwFreeHwMixingStaticBuffers;
64 DWORD dwFreeHwMixingStreamingBuffers;
65 DWORD dwMaxHw3DAllBuffers;
66 DWORD dwMaxHw3DStaticBuffers;
67 DWORD dwMaxHw3DStreamingBuffers;
68 DWORD dwFreeHw3DAllBuffers;
69 DWORD dwFreeHw3DStaticBuffers;
70 DWORD dwFreeHw3DStreamingBuffers;
71 DWORD dwTotalHwMemBytes;
72 DWORD dwFreeHwMemBytes;
73 DWORD dwMaxContigFreeHwMemBytes;
74 DWORD dwUnlockTransferRateHwBuffers;
75 DWORD dwPlayCpuOverheadSwBuffers;
76 DWORD dwReserved1;
77 DWORD dwReserved2;
78 } DSCAPS, *LPDSCAPS;
79 typedef const DSCAPS *LPCDSCAPS;
80 typedef struct _DSBCAPS
82 DWORD dwSize;
83 DWORD dwFlags;
84 DWORD dwBufferBytes;
85 DWORD dwUnlockTransferRate;
86 DWORD dwPlayCpuOverhead;
87 } DSBCAPS, *LPDSBCAPS;
88 typedef const DSBCAPS *LPCDSBCAPS;
89 typedef struct _DSBUFFERDESC
91 DWORD dwSize;
92 DWORD dwFlags;
93 DWORD dwBufferBytes;
94 DWORD dwReserved;
95 LPWAVEFORMATEX lpwfxFormat;
96 #if DIRECTSOUND_VERSION >= 1792
97 GUID guid3DAlgorithm;
98 #endif
99 } DSBUFFERDESC, *LPDSBUFFERDESC;
100 typedef const DSBUFFERDESC *LPCDSBUFFERDESC;
101 typedef struct _DSBUFFERDESC1
103 DWORD dwSize;
104 DWORD dwFlags;
105 DWORD dwBufferBytes;
106 DWORD dwReserved;
107 LPWAVEFORMATEX lpwfxFormat;
108 } DSBUFFERDESC1, *LPDSBUFFERDESC1;
109 typedef const DSBUFFERDESC1 *LPCDSBUFFERDESC1;
110 typedef struct _DS3DBUFFER
112 DWORD dwSize;
113 D3DVECTOR vPosition;
114 D3DVECTOR vVelocity;
115 DWORD dwInsideConeAngle;
116 DWORD dwOutsideConeAngle;
117 D3DVECTOR vConeOrientation;
118 LONG lConeOutsideVolume;
119 D3DVALUE flMinDistance;
120 D3DVALUE flMaxDistance;
121 DWORD dwMode;
122 } DS3DBUFFER, *LPDS3DBUFFER;
123 typedef const DS3DBUFFER *LPCDS3DBUFFER;
124 typedef struct _DS3DLISTENER
126 DWORD dwSize;
127 D3DVECTOR vPosition;
128 D3DVECTOR vVelocity;
129 D3DVECTOR vOrientFront;
130 D3DVECTOR vOrientTop;
131 D3DVALUE flDistanceFactor;
132 D3DVALUE flRolloffFactor;
133 D3DVALUE flDopplerFactor;
134 } DS3DLISTENER, *LPDS3DLISTENER;
135 typedef const DS3DLISTENER *LPCDS3DLISTENER;
136 typedef struct _DSCCAPS
138 DWORD dwSize;
139 DWORD dwFlags;
140 DWORD dwFormats;
141 DWORD dwChannels;
142 } DSCCAPS, *LPDSCCAPS;
143 typedef const DSCCAPS *LPCDSCCAPS;
144 typedef struct _DSCBUFFERDESC
146 DWORD dwSize;
147 DWORD dwFlags;
148 DWORD dwBufferBytes;
149 DWORD dwReserved;
150 LPWAVEFORMATEX lpwfxFormat;
151 } DSCBUFFERDESC, *LPDSCBUFFERDESC;
152 typedef const DSCBUFFERDESC *LPCDSCBUFFERDESC;
153 typedef struct _DSCBCAPS
155 DWORD dwSize;
156 DWORD dwFlags;
157 DWORD dwBufferBytes;
158 DWORD dwReserved;
159 } DSCBCAPS, *LPDSCBCAPS;
160 typedef const DSCBCAPS *LPCDSCBCAPS;
161 typedef struct _DSBPOSITIONNOTIFY
163 DWORD dwOffset;
164 HANDLE hEventNotify;
165 } DSBPOSITIONNOTIFY, *LPDSBPOSITIONNOTIFY;
166 typedef const DSBPOSITIONNOTIFY *LPCDSBPOSITIONNOTIFY;
167 typedef BOOL (CALLBACK *LPDSENUMCALLBACKA)(LPGUID, LPCSTR, LPCSTR, LPVOID);
168 typedef BOOL (CALLBACK *LPDSENUMCALLBACKW)(LPGUID, LPCWSTR, LPCWSTR, LPVOID);
169 extern HRESULT WINAPI DirectSoundCreate(LPCGUID, LPDIRECTSOUND *, LPUNKNOWN);
170 extern HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA, LPVOID);
171 extern HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW, LPVOID);
172 extern HRESULT WINAPI DirectSoundCaptureCreate(LPCGUID, LPDIRECTSOUNDCAPTURE *, LPUNKNOWN);
173 extern HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID);
174 extern HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID);
175 #ifdef UNICODE
176 #define LPDSENUMCALLBACK LPDSENUMCALLBACKW
177 #define DirectSoundEnumerate DirectSoundEnumerateW
178 #define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateW
179 #else
180 #define LPDSENUMCALLBACK LPDSENUMCALLBACKA
181 #define DirectSoundEnumerate DirectSoundEnumerateA
182 #define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateA
183 #endif
184 #ifndef IUnknown_QueryInterface
185 #define IUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
186 #endif
187 #ifndef IUnknown_AddRef
188 #define IUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
189 #endif
190 #ifndef IUnknown_Release
191 #define IUnknown_Release(p) (p)->lpVtbl->Release(p)
192 #endif
193 DEFINE_GUID(IID_IDirectSound, 0x279afa83, 0x4981, 4558, 165, 33, 0, 32, 175, 11, 229, 96);
194 #undef INTERFACE
195 #define INTERFACE IDirectSound
196 DECLARE_INTERFACE_(IDirectSound, IUnknown)
198 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) ;
199 STDMETHOD_(ULONG,AddRef) (THIS) ;
200 STDMETHOD_(ULONG,Release) (THIS) ;
201 STDMETHOD(CreateSoundBuffer) (THIS_ LPCDSBUFFERDESC, LPDIRECTSOUNDBUFFER *, LPUNKNOWN) ;
202 STDMETHOD(GetCaps) (THIS_ LPDSCAPS) ;
203 STDMETHOD(DuplicateSoundBuffer) (THIS_ LPDIRECTSOUNDBUFFER, LPDIRECTSOUNDBUFFER *) ;
204 STDMETHOD(SetCooperativeLevel) (THIS_ HWND, DWORD) ;
205 STDMETHOD(Compact) (THIS) ;
206 STDMETHOD(GetSpeakerConfig) (THIS_ LPDWORD) ;
207 STDMETHOD(SetSpeakerConfig) (THIS_ DWORD) ;
208 STDMETHOD(Initialize) (THIS_ LPCGUID) ;
210 #define IDirectSound_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b)
211 #define IDirectSound_AddRef(p) IUnknown_AddRef(p)
212 #define IDirectSound_Release(p) IUnknown_Release(p)
213 #define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
214 #define IDirectSound_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
215 #define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
216 #define IDirectSound_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
217 #define IDirectSound_Compact(p) (p)->lpVtbl->Compact(p)
218 #define IDirectSound_GetSpeakerConfig(p,a) (p)->lpVtbl->GetSpeakerConfig(p,a)
219 #define IDirectSound_SetSpeakerConfig(p,b) (p)->lpVtbl->SetSpeakerConfig(p,b)
220 #define IDirectSound_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
221 DEFINE_GUID(IID_IDirectSoundBuffer, 0x279afa85, 0x4981, 4558, 165, 33, 0, 32, 175, 11, 229, 96);
222 #undef INTERFACE
223 #define INTERFACE IDirectSoundBuffer
224 DECLARE_INTERFACE_(IDirectSoundBuffer, IUnknown)
226 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) ;
227 STDMETHOD_(ULONG,AddRef) (THIS) ;
228 STDMETHOD_(ULONG,Release) (THIS) ;
229 STDMETHOD(GetCaps) (THIS_ LPDSBCAPS) ;
230 STDMETHOD(GetCurrentPosition) (THIS_ LPDWORD, LPDWORD) ;
231 STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX, DWORD, LPDWORD) ;
232 STDMETHOD(GetVolume) (THIS_ LPLONG) ;
233 STDMETHOD(GetPan) (THIS_ LPLONG) ;
234 STDMETHOD(GetFrequency) (THIS_ LPDWORD) ;
235 STDMETHOD(GetStatus) (THIS_ LPDWORD) ;
236 STDMETHOD(Initialize) (THIS_ LPDIRECTSOUND, LPCDSBUFFERDESC) ;
237 STDMETHOD(Lock) (THIS_ DWORD, DWORD, LPVOID *, LPDWORD, LPVOID *, LPDWORD, DWORD) ;
238 STDMETHOD(Play) (THIS_ DWORD, DWORD, DWORD) ;
239 STDMETHOD(SetCurrentPosition) (THIS_ DWORD) ;
240 STDMETHOD(SetFormat) (THIS_ LPCWAVEFORMATEX) ;
241 STDMETHOD(SetVolume) (THIS_ LONG) ;
242 STDMETHOD(SetPan) (THIS_ LONG) ;
243 STDMETHOD(SetFrequency) (THIS_ DWORD) ;
244 STDMETHOD(Stop) (THIS) ;
245 STDMETHOD(Unlock) (THIS_ LPVOID, DWORD, LPVOID, DWORD) ;
246 STDMETHOD(Restore) (THIS) ;
248 #define IDirectSoundBuffer_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b)
249 #define IDirectSoundBuffer_AddRef(p) IUnknown_AddRef(p)
250 #define IDirectSoundBuffer_Release(p) IUnknown_Release(p)
251 #define IDirectSoundBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
252 #define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
253 #define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
254 #define IDirectSoundBuffer_GetVolume(p,a) (p)->lpVtbl->GetVolume(p,a)
255 #define IDirectSoundBuffer_GetPan(p,a) (p)->lpVtbl->GetPan(p,a)
256 #define IDirectSoundBuffer_GetFrequency(p,a) (p)->lpVtbl->GetFrequency(p,a)
257 #define IDirectSoundBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
258 #define IDirectSoundBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
259 #define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
260 #define IDirectSoundBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c)
261 #define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->lpVtbl->SetCurrentPosition(p,a)
262 #define IDirectSoundBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
263 #define IDirectSoundBuffer_SetVolume(p,a) (p)->lpVtbl->SetVolume(p,a)
264 #define IDirectSoundBuffer_SetPan(p,a) (p)->lpVtbl->SetPan(p,a)
265 #define IDirectSoundBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a)
266 #define IDirectSoundBuffer_Stop(p) (p)->lpVtbl->Stop(p)
267 #define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
268 #define IDirectSoundBuffer_Restore(p) (p)->lpVtbl->Restore(p)
269 DEFINE_GUID(IID_IDirectSound3DListener, 0x279afa84, 0x4981, 4558, 165, 33, 0, 32, 175, 11, 229, 96);
270 #undef INTERFACE
271 #define INTERFACE IDirectSound3DListener
272 DECLARE_INTERFACE_(IDirectSound3DListener, IUnknown)
274 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) ;
275 STDMETHOD_(ULONG,AddRef) (THIS) ;
276 STDMETHOD_(ULONG,Release) (THIS) ;
277 STDMETHOD(GetAllParameters) (THIS_ LPDS3DLISTENER) ;
278 STDMETHOD(GetDistanceFactor) (THIS_ LPD3DVALUE) ;
279 STDMETHOD(GetDopplerFactor) (THIS_ LPD3DVALUE) ;
280 STDMETHOD(GetOrientation) (THIS_ LPD3DVECTOR, LPD3DVECTOR) ;
281 STDMETHOD(GetPosition) (THIS_ LPD3DVECTOR) ;
282 STDMETHOD(GetRolloffFactor) (THIS_ LPD3DVALUE) ;
283 STDMETHOD(GetVelocity) (THIS_ LPD3DVECTOR) ;
284 STDMETHOD(SetAllParameters) (THIS_ LPCDS3DLISTENER, DWORD) ;
285 STDMETHOD(SetDistanceFactor) (THIS_ D3DVALUE, DWORD) ;
286 STDMETHOD(SetDopplerFactor) (THIS_ D3DVALUE, DWORD) ;
287 STDMETHOD(SetOrientation) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE, DWORD) ;
288 STDMETHOD(SetPosition) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) ;
289 STDMETHOD(SetRolloffFactor) (THIS_ D3DVALUE, DWORD) ;
290 STDMETHOD(SetVelocity) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) ;
291 STDMETHOD(CommitDeferredSettings) (THIS) ;
293 #define IDirectSound3DListener_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b)
294 #define IDirectSound3DListener_AddRef(p) IUnknown_AddRef(p)
295 #define IDirectSound3DListener_Release(p) IUnknown_Release(p)
296 #define IDirectSound3DListener_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a)
297 #define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->lpVtbl->GetDistanceFactor(p,a)
298 #define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->lpVtbl->GetDopplerFactor(p,a)
299 #define IDirectSound3DListener_GetOrientation(p,a,b) (p)->lpVtbl->GetOrientation(p,a,b)
300 #define IDirectSound3DListener_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a)
301 #define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->lpVtbl->GetRolloffFactor(p,a)
302 #define IDirectSound3DListener_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a)
303 #define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b)
304 #define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->lpVtbl->SetDistanceFactor(p,a,b)
305 #define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->lpVtbl->SetDopplerFactor(p,a,b)
306 #define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
307 #define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
308 #define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->lpVtbl->SetRolloffFactor(p,a,b)
309 #define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d)
310 #define IDirectSound3DListener_CommitDeferredSettings(p) (p)->lpVtbl->CommitDeferredSettings(p)
311 DEFINE_GUID(IID_IDirectSound3DBuffer, 0x279afa86, 0x4981, 4558, 165, 33, 0, 32, 175, 11, 229, 96);
312 #undef INTERFACE
313 #define INTERFACE IDirectSound3DBuffer
314 DECLARE_INTERFACE_(IDirectSound3DBuffer, IUnknown)
316 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) ;
317 STDMETHOD_(ULONG,AddRef) (THIS) ;
318 STDMETHOD_(ULONG,Release) (THIS) ;
319 STDMETHOD(GetAllParameters) (THIS_ LPDS3DBUFFER) ;
320 STDMETHOD(GetConeAngles) (THIS_ LPDWORD, LPDWORD) ;
321 STDMETHOD(GetConeOrientation) (THIS_ LPD3DVECTOR) ;
322 STDMETHOD(GetConeOutsideVolume) (THIS_ LPLONG) ;
323 STDMETHOD(GetMaxDistance) (THIS_ LPD3DVALUE) ;
324 STDMETHOD(GetMinDistance) (THIS_ LPD3DVALUE) ;
325 STDMETHOD(GetMode) (THIS_ LPDWORD) ;
326 STDMETHOD(GetPosition) (THIS_ LPD3DVECTOR) ;
327 STDMETHOD(GetVelocity) (THIS_ LPD3DVECTOR) ;
328 STDMETHOD(SetAllParameters) (THIS_ LPCDS3DBUFFER, DWORD) ;
329 STDMETHOD(SetConeAngles) (THIS_ DWORD, DWORD, DWORD) ;
330 STDMETHOD(SetConeOrientation) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) ;
331 STDMETHOD(SetConeOutsideVolume) (THIS_ LONG, DWORD) ;
332 STDMETHOD(SetMaxDistance) (THIS_ D3DVALUE, DWORD) ;
333 STDMETHOD(SetMinDistance) (THIS_ D3DVALUE, DWORD) ;
334 STDMETHOD(SetMode) (THIS_ DWORD, DWORD) ;
335 STDMETHOD(SetPosition) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) ;
336 STDMETHOD(SetVelocity) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) ;
338 #define IDirectSound3DBuffer_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b)
339 #define IDirectSound3DBuffer_AddRef(p) IUnknown_AddRef(p)
340 #define IDirectSound3DBuffer_Release(p) IUnknown_Release(p)
341 #define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a)
342 #define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->lpVtbl->GetConeAngles(p,a,b)
343 #define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->lpVtbl->GetConeOrientation(p,a)
344 #define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->lpVtbl->GetConeOutsideVolume(p,a)
345 #define IDirectSound3DBuffer_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a)
346 #define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->lpVtbl->GetMinDistance(p,a)
347 #define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->lpVtbl->GetMaxDistance(p,a)
348 #define IDirectSound3DBuffer_GetMode(p,a) (p)->lpVtbl->GetMode(p,a)
349 #define IDirectSound3DBuffer_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a)
350 #define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b)
351 #define IDirectSound3DBuffer_SetConeAngles(p,a,b,c) (p)->lpVtbl->SetConeAngles(p,a,b,c)
352 #define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->lpVtbl->SetConeOrientation(p,a,b,c,d)
353 #define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b) (p)->lpVtbl->SetConeOutsideVolume(p,a,b)
354 #define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
355 #define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->lpVtbl->SetMinDistance(p,a,b)
356 #define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->lpVtbl->SetMaxDistance(p,a,b)
357 #define IDirectSound3DBuffer_SetMode(p,a,b) (p)->lpVtbl->SetMode(p,a,b)
358 #define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d)
359 DEFINE_GUID(IID_IDirectSoundCapture, 0xb0210781, 0x89cd, 4560, 175, 8, 0, 160, 201, 37, 205, 22);
360 #undef INTERFACE
361 #define INTERFACE IDirectSoundCapture
362 DECLARE_INTERFACE_(IDirectSoundCapture, IUnknown)
364 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) ;
365 STDMETHOD_(ULONG,AddRef) (THIS) ;
366 STDMETHOD_(ULONG,Release) (THIS) ;
367 STDMETHOD(CreateCaptureBuffer) (THIS_ LPCDSCBUFFERDESC, LPDIRECTSOUNDCAPTUREBUFFER *, LPUNKNOWN) ;
368 STDMETHOD(GetCaps) (THIS_ LPDSCCAPS) ;
369 STDMETHOD(Initialize) (THIS_ LPCGUID) ;
371 #define IDirectSoundCapture_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b)
372 #define IDirectSoundCapture_AddRef(p) IUnknown_AddRef(p)
373 #define IDirectSoundCapture_Release(p) IUnknown_Release(p)
374 #define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c)
375 #define IDirectSoundCapture_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
376 #define IDirectSoundCapture_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
377 DEFINE_GUID(IID_IDirectSoundCaptureBuffer, 0xb0210782, 0x89cd, 4560, 175, 8, 0, 160, 201, 37, 205, 22);
378 #undef INTERFACE
379 #define INTERFACE IDirectSoundCaptureBuffer
380 DECLARE_INTERFACE_(IDirectSoundCaptureBuffer, IUnknown)
382 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) ;
383 STDMETHOD_(ULONG,AddRef) (THIS) ;
384 STDMETHOD_(ULONG,Release) (THIS) ;
385 STDMETHOD(GetCaps) (THIS_ LPDSCBCAPS) ;
386 STDMETHOD(GetCurrentPosition) (THIS_ LPDWORD, LPDWORD) ;
387 STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX, DWORD, LPDWORD) ;
388 STDMETHOD(GetStatus) (THIS_ LPDWORD) ;
389 STDMETHOD(Initialize) (THIS_ LPDIRECTSOUNDCAPTURE, LPCDSCBUFFERDESC) ;
390 STDMETHOD(Lock) (THIS_ DWORD, DWORD, LPVOID *, LPDWORD, LPVOID *, LPDWORD, DWORD) ;
391 STDMETHOD(Start) (THIS_ DWORD) ;
392 STDMETHOD(Stop) (THIS) ;
393 STDMETHOD(Unlock) (THIS_ LPVOID, DWORD, LPVOID, DWORD) ;
395 #define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b)
396 #define IDirectSoundCaptureBuffer_AddRef(p) IUnknown_AddRef(p)
397 #define IDirectSoundCaptureBuffer_Release(p) IUnknown_Release(p)
398 #define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
399 #define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
400 #define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
401 #define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
402 #define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
403 #define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
404 #define IDirectSoundCaptureBuffer_Start(p,a) (p)->lpVtbl->Start(p,a)
405 #define IDirectSoundCaptureBuffer_Stop(p) (p)->lpVtbl->Stop(p)
406 #define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
407 DEFINE_GUID(IID_IDirectSoundNotify, 0xb0210783, 0x89cd, 4560, 175, 8, 0, 160, 201, 37, 205, 22);
408 #undef INTERFACE
409 #define INTERFACE IDirectSoundNotify
410 DECLARE_INTERFACE_(IDirectSoundNotify, IUnknown)
412 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) ;
413 STDMETHOD_(ULONG,AddRef) (THIS) ;
414 STDMETHOD_(ULONG,Release) (THIS) ;
415 STDMETHOD(SetNotificationPositions) (THIS_ DWORD, LPCDSBPOSITIONNOTIFY) ;
417 #define IDirectSoundNotify_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b)
418 #define IDirectSoundNotify_AddRef(p) IUnknown_AddRef(p)
419 #define IDirectSoundNotify_Release(p) IUnknown_Release(p)
420 #define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
421 #ifndef _IKsPropertySet_
422 #define _IKsPropertySet_
423 typedef struct IKsPropertySet *LPKSPROPERTYSET;
424 #define KSPROPERTY_SUPPORT_GET 1
425 #define KSPROPERTY_SUPPORT_SET 2
426 DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 4560, 169, 170, 0, 170, 0, 97, 190, 147);
427 #undef INTERFACE
428 #define INTERFACE IKsPropertySet
429 DECLARE_INTERFACE_(IKsPropertySet, IUnknown)
431 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) ;
432 STDMETHOD_(ULONG,AddRef) (THIS) ;
433 STDMETHOD_(ULONG,Release) (THIS) ;
434 STDMETHOD(Get) (THIS_ REFGUID, ULONG, LPVOID, ULONG, LPVOID, ULONG, PULONG) ;
435 STDMETHOD(Set) (THIS_ REFGUID, ULONG, LPVOID, ULONG, LPVOID, ULONG) ;
436 STDMETHOD(QuerySupport) (THIS_ REFGUID, ULONG, PULONG) ;
438 #define IKsPropertySet_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b)
439 #define IKsPropertySet_AddRef(p) IUnknown_AddRef(p)
440 #define IKsPropertySet_Release(p) IUnknown_Release(p)
441 #define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
442 #define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f)
443 #define IKsPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c)
444 #endif
445 #define DS_OK S_OK
446 #define DS_NO_VIRTUALIZATION MAKE_HRESULT(0, _FACDS, 10)
447 #define DSERR_ALLOCATED MAKE_DSHRESULT(10)
448 #define DSERR_CONTROLUNAVAIL MAKE_DSHRESULT(30)
449 #define DSERR_INVALIDPARAM E_INVALIDARG
450 #define DSERR_INVALIDCALL MAKE_DSHRESULT(50)
451 #define DSERR_GENERIC E_FAIL
452 #define DSERR_PRIOLEVELNEEDED MAKE_DSHRESULT(70)
453 #define DSERR_OUTOFMEMORY E_OUTOFMEMORY
454 #define DSERR_BADFORMAT MAKE_DSHRESULT(100)
455 #define DSERR_UNSUPPORTED E_NOTIMPL
456 #define DSERR_NODRIVER MAKE_DSHRESULT(120)
457 #define DSERR_ALREADYINITIALIZED MAKE_DSHRESULT(130)
458 #define DSERR_NOAGGREGATION CLASS_E_NOAGGREGATION
459 #define DSERR_BUFFERLOST MAKE_DSHRESULT(150)
460 #define DSERR_OTHERAPPHASPRIO MAKE_DSHRESULT(160)
461 #define DSERR_UNINITIALIZED MAKE_DSHRESULT(170)
462 #define DSERR_NOINTERFACE E_NOINTERFACE
463 #define DSERR_ACCESSDENIED E_ACCESSDENIED
464 #define DSCAPS_PRIMARYMONO 1
465 #define DSCAPS_PRIMARYSTEREO 2
466 #define DSCAPS_PRIMARY8BIT 4
467 #define DSCAPS_PRIMARY16BIT 8
468 #define DSCAPS_CONTINUOUSRATE 16
469 #define DSCAPS_EMULDRIVER 32
470 #define DSCAPS_CERTIFIED 64
471 #define DSCAPS_SECONDARYMONO 256
472 #define DSCAPS_SECONDARYSTEREO 512
473 #define DSCAPS_SECONDARY8BIT 1024
474 #define DSCAPS_SECONDARY16BIT 2048
475 #define DSSCL_NORMAL 1
476 #define DSSCL_PRIORITY 2
477 #define DSSCL_EXCLUSIVE 3
478 #define DSSCL_WRITEPRIMARY 4
479 #define DSSPEAKER_HEADPHONE 1
480 #define DSSPEAKER_MONO 2
481 #define DSSPEAKER_QUAD 3
482 #define DSSPEAKER_STEREO 4
483 #define DSSPEAKER_SURROUND 5
484 #define DSSPEAKER_5POINT1 6
485 #define DSSPEAKER_GEOMETRY_MIN 5
486 #define DSSPEAKER_GEOMETRY_NARROW 10
487 #define DSSPEAKER_GEOMETRY_WIDE 20
488 #define DSSPEAKER_GEOMETRY_MAX 180
489 #define DSSPEAKER_COMBINED(c, g) ((DWORD)(((BYTE)(c)) | ((DWORD)((BYTE)(g))) << 16))
490 #define DSSPEAKER_CONFIG(a) ((BYTE)(a))
491 #define DSSPEAKER_GEOMETRY(a) ((BYTE)(((DWORD)(a) >> 16) & 255))
492 #define DSBCAPS_PRIMARYBUFFER 1
493 #define DSBCAPS_STATIC 2
494 #define DSBCAPS_LOCHARDWARE 4
495 #define DSBCAPS_LOCSOFTWARE 8
496 #define DSBCAPS_CTRL3D 16
497 #define DSBCAPS_CTRLFREQUENCY 32
498 #define DSBCAPS_CTRLPAN 64
499 #define DSBCAPS_CTRLVOLUME 128
500 #define DSBCAPS_CTRLPOSITIONNOTIFY 256
501 #define DSBCAPS_CTRLDEFAULT 0x0E0
502 #define DSBCAPS_CTRLALL 0x01F0
503 #define DSBCAPS_STICKYFOCUS 0x4000
504 #define DSBCAPS_GLOBALFOCUS 0x8000
505 #define DSBCAPS_GETCURRENTPOSITION2 0x10000
506 #define DSBCAPS_MUTE3DATMAXDISTANCE 0x20000
507 #define DSBCAPS_LOCDEFER 0x40000
508 #define DSBPLAY_LOOPING 1
509 #define DSBPLAY_LOCHARDWARE 2
510 #define DSBPLAY_LOCSOFTWARE 4
511 #define DSBPLAY_TERMINATEBY_TIME 8
512 #define DSBPLAY_TERMINATEBY_DISTANCE 16
513 #define DSBPLAY_TERMINATEBY_PRIORITY 32
514 #define DSBSTATUS_PLAYING 1
515 #define DSBSTATUS_BUFFERLOST 2
516 #define DSBSTATUS_LOOPING 4
517 #define DSBSTATUS_LOCHARDWARE 8
518 #define DSBSTATUS_LOCSOFTWARE 16
519 #define DSBSTATUS_TERMINATED 32
520 #define DSBLOCK_FROMWRITECURSOR 1
521 #define DSBLOCK_ENTIREBUFFER 2
522 #define DSBFREQUENCY_MIN 100
523 #define DSBFREQUENCY_MAX 100000
524 #define DSBFREQUENCY_ORIGINAL 0
525 #define DSBPAN_LEFT -10000
526 #define DSBPAN_CENTER 0
527 #define DSBPAN_RIGHT 10000
528 #define DSBVOLUME_MIN -10000
529 #define DSBVOLUME_MAX 0
530 #define DSBSIZE_MIN 4
531 #define DSBSIZE_MAX 0xfffffff
532 #define DS3DMODE_NORMAL 0
533 #define DS3DMODE_HEADRELATIVE 1
534 #define DS3DMODE_DISABLE 2
535 #define DS3D_IMMEDIATE 0
536 #define DS3D_DEFERRED 1
537 #define DS3D_MINDISTANCEFACTOR FLT_MIN
538 #define DS3D_MAXDISTANCEFACTOR FLT_MAX
539 #define DS3D_DEFAULTDISTANCEFACTOR 1.0f
540 #define DS3D_MINROLLOFFFACTOR 0.0f
541 #define DS3D_MAXROLLOFFFACTOR 10.0f
542 #define DS3D_DEFAULTROLLOFFFACTOR 1.0f
543 #define DS3D_MINDOPPLERFACTOR 0.0f
544 #define DS3D_MAXDOPPLERFACTOR 10.0f
545 #define DS3D_DEFAULTDOPPLERFACTOR 1.0f
546 #define DS3D_DEFAULTMINDISTANCE 1.0f
547 #define DS3D_DEFAULTMAXDISTANCE 1000000000.0f
548 #define DS3D_MINCONEANGLE 0
549 #define DS3D_MAXCONEANGLE 360
550 #define DS3D_DEFAULTCONEANGLE 360
551 #define DS3D_DEFAULTCONEOUTSIDEVOLUME DSBVOLUME_MAX
552 #define DSCCAPS_EMULDRIVER DSCAPS_EMULDRIVER
553 #define DSCCAPS_CERTIFIED DSCAPS_CERTIFIED
554 #define DSCBCAPS_WAVEMAPPED 0x80000000
555 #define DSCBLOCK_ENTIREBUFFER 1
556 #define DSCBSTATUS_CAPTURING 1
557 #define DSCBSTATUS_LOOPING 2
558 #define DSCBSTART_LOOPING 1
559 #define DSBPN_OFFSETSTOP 0xffffffff
560 #define DS3DALG_DEFAULT GUID_NULL
561 DEFINE_GUID(DS3DALG_NO_VIRTUALIZATION, 0xc241333f, 7195, 4562, 148, 245, 0, 192, 79, 194, 138, 202);
562 DEFINE_GUID(DS3DALG_HRTF_FULL, 0xc2413340, 7195, 4562, 148, 245, 0, 192, 79, 194, 138, 202);
563 DEFINE_GUID(DS3DALG_HRTF_LIGHT, 0xc2413342, 7195, 4562, 148, 245, 0, 192, 79, 194, 138, 202);
564 #endif