DirectX 5 Redocumentation
A redocumentation of DirectX 5, brought to you by a bunch of Infomaniacs.
dsound.h
Go to the documentation of this file.
1/*==========================================================================;
2 *
3 * Copyright (C) 1995,1996 Microsoft Corporation. All Rights Reserved.
4 *
5 * File: dsound.h
6 * Content: DirectSound include file
7 *
8 **************************************************************************/
9
10#ifndef __DSOUND_INCLUDED__
11#define __DSOUND_INCLUDED__
12
13#include <d3dtypes.h>
14
15#define COM_NO_WINDOWS_H
16#include <objbase.h>
17
18#define _FACDS 0x878
19#define MAKE_DSHRESULT(code) MAKE_HRESULT(1, _FACDS, code)
20
21#ifdef __cplusplus
22extern "C" {
23#endif // __cplusplus
24
26DEFINE_GUID(CLSID_DirectSound, 0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
27
29DEFINE_GUID(CLSID_DirectSoundCapture, 0xb0210780, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
30
31//
32// Structures
33//
34
35#ifdef __cplusplus
36// 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined
37struct IDirectSound;
38struct IDirectSoundBuffer;
39struct IDirectSound3DListener;
40struct IDirectSound3DBuffer;
41struct IDirectSoundCapture;
42struct IDirectSoundCaptureBuffer;
43struct IDirectSoundNotify;
44#endif // __cplusplus
45
46typedef struct IDirectSound *LPDIRECTSOUND;
47typedef struct IDirectSoundBuffer *LPDIRECTSOUNDBUFFER;
48typedef struct IDirectSound3DListener *LPDIRECTSOUND3DLISTENER;
49typedef struct IDirectSound3DBuffer *LPDIRECTSOUND3DBUFFER;
50typedef struct IDirectSoundCapture *LPDIRECTSOUNDCAPTURE;
51typedef struct IDirectSoundCaptureBuffer *LPDIRECTSOUNDCAPTUREBUFFER;
52typedef struct IDirectSoundNotify *LPDIRECTSOUNDNOTIFY;
53
54typedef struct _DSCAPS
55{
81
82typedef const DSCAPS *LPCDSCAPS;
83
84typedef struct _DSBCAPS
85{
92
93typedef const DSBCAPS *LPCDSBCAPS;
94
95typedef struct _DSBUFFERDESC
96{
101 LPWAVEFORMATEX lpwfxFormat;
103
105
106typedef struct _DS3DBUFFER
107{
119
121
122typedef struct _DS3DLISTENER
123{
133
135
136typedef struct _DSCCAPS
137{
143
144typedef const DSCCAPS *LPCDSCCAPS;
145
146typedef struct _DSCBUFFERDESC
147{
152 LPWAVEFORMATEX lpwfxFormat;
154
156
157typedef struct _DSCBCAPS
158{
164
165typedef const DSCBCAPS *LPCDSCBCAPS;
166
167typedef struct _DSBPOSITIONNOTIFY
168{
172
174
175//
176// Compatibility typedefs
177//
178
187typedef const WAVEFORMATEX *LPCWAVEFORMATEX;
188
189//
190// DirectSound API
191//
192
193typedef BOOL (CALLBACK *LPDSENUMCALLBACKW)(LPGUID, LPCWSTR, LPCWSTR, LPVOID);
194typedef BOOL (CALLBACK *LPDSENUMCALLBACKA)(LPGUID, LPCSTR, LPCSTR, LPVOID);
195
196extern HRESULT WINAPI DirectSoundCreate(LPGUID, LPDIRECTSOUND *, LPUNKNOWN);
199
200extern HRESULT WINAPI DirectSoundCaptureCreate(LPGUID, LPDIRECTSOUNDCAPTURE *, LPUNKNOWN);
203
204#ifdef UNICODE
205#define LPDSENUMCALLBACK LPDSENUMCALLBACKW
206#define DirectSoundEnumerate DirectSoundEnumerateW
207#define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateW
208#else // UNICODE
209#define LPDSENUMCALLBACK LPDSENUMCALLBACKA
210#define DirectSoundEnumerate DirectSoundEnumerateA
211#define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateA
212#endif // UNICODE
213
214//
215// IDirectSound
216//
217
218DEFINE_GUID(IID_IDirectSound, 0x279AFA83, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
219
220#undef INTERFACE
221#define INTERFACE IDirectSound
222
224{
225 // IUnknown methods
226 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
227 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
228 STDMETHOD_(ULONG,Release) (THIS) PURE;
229
230 // IDirectSound methods
231 STDMETHOD(CreateSoundBuffer) (THIS_ LPCDSBUFFERDESC, LPDIRECTSOUNDBUFFER *, LPUNKNOWN) PURE;
232 STDMETHOD(GetCaps) (THIS_ LPDSCAPS) PURE;
233 STDMETHOD(DuplicateSoundBuffer) (THIS_ LPDIRECTSOUNDBUFFER, LPDIRECTSOUNDBUFFER *) PURE;
234 STDMETHOD(SetCooperativeLevel) (THIS_ HWND, DWORD) PURE;
235 STDMETHOD(Compact) (THIS) PURE;
236 STDMETHOD(GetSpeakerConfig) (THIS_ LPDWORD) PURE;
237 STDMETHOD(SetSpeakerConfig) (THIS_ DWORD) PURE;
238 STDMETHOD(Initialize) (THIS_ LPGUID) PURE;
239};
240
241#if !defined(__cplusplus) || defined(CINTERFACE)
242#define IDirectSound_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
243#define IDirectSound_AddRef(p) (p)->lpVtbl->AddRef(p)
244#define IDirectSound_Release(p) (p)->lpVtbl->Release(p)
245#define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
246#define IDirectSound_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
247#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
248#define IDirectSound_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
249#define IDirectSound_Compact(p) (p)->lpVtbl->Compact(p)
250#define IDirectSound_GetSpeakerConfig(p,a) (p)->lpVtbl->GetSpeakerConfig(p,a)
251#define IDirectSound_SetSpeakerConfig(p,b) (p)->lpVtbl->SetSpeakerConfig(p,b)
252#define IDirectSound_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
253#else // !defined(__cplusplus) || defined(CINTERFACE)
254#define IDirectSound_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
255#define IDirectSound_AddRef(p) (p)->AddRef()
256#define IDirectSound_Release(p) (p)->Release()
257#define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->CreateSoundBuffer(a,b,c)
258#define IDirectSound_GetCaps(p,a) (p)->GetCaps(a)
259#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b)
260#define IDirectSound_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
261#define IDirectSound_Compact(p) (p)->Compact()
262#define IDirectSound_GetSpeakerConfig(p,a) (p)->GetSpeakerConfig(a)
263#define IDirectSound_SetSpeakerConfig(p,b) (p)->SetSpeakerConfig(b)
264#define IDirectSound_Initialize(p,a) (p)->Initialize(a)
265#endif // !defined(__cplusplus) || defined(CINTERFACE)
266
267//
268// IDirectSoundBuffer
269//
270
271DEFINE_GUID(IID_IDirectSoundBuffer, 0x279AFA85, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
272
273#undef INTERFACE
274#define INTERFACE IDirectSoundBuffer
275
276DECLARE_INTERFACE_(IDirectSoundBuffer, IUnknown)
277{
278 // IUnknown methods
279 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
280 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
281 STDMETHOD_(ULONG,Release) (THIS) PURE;
282
283 // IDirectSoundBuffer methods
284 STDMETHOD(GetCaps) (THIS_ LPDSBCAPS) PURE;
285 STDMETHOD(GetCurrentPosition) (THIS_ LPDWORD, LPDWORD) PURE;
286 STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX, DWORD, LPDWORD) PURE;
287 STDMETHOD(GetVolume) (THIS_ LPLONG) PURE;
288 STDMETHOD(GetPan) (THIS_ LPLONG) PURE;
289 STDMETHOD(GetFrequency) (THIS_ LPDWORD) PURE;
290 STDMETHOD(GetStatus) (THIS_ LPDWORD) PURE;
291 STDMETHOD(Initialize) (THIS_ LPDIRECTSOUND, LPCDSBUFFERDESC) PURE;
292 STDMETHOD(Lock) (THIS_ DWORD, DWORD, LPVOID *, LPDWORD, LPVOID *, LPDWORD, DWORD) PURE;
293 STDMETHOD(Play) (THIS_ DWORD, DWORD, DWORD) PURE;
294 STDMETHOD(SetCurrentPosition) (THIS_ DWORD) PURE;
295 STDMETHOD(SetFormat) (THIS_ LPCWAVEFORMATEX) PURE;
296 STDMETHOD(SetVolume) (THIS_ LONG) PURE;
297 STDMETHOD(SetPan) (THIS_ LONG) PURE;
298 STDMETHOD(SetFrequency) (THIS_ DWORD) PURE;
299 STDMETHOD(Stop) (THIS) PURE;
300 STDMETHOD(Unlock) (THIS_ LPVOID, DWORD, LPVOID, DWORD) PURE;
301 STDMETHOD(Restore) (THIS) PURE;
302};
303
304#if !defined(__cplusplus) || defined(CINTERFACE)
305#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
306#define IDirectSoundBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
307#define IDirectSoundBuffer_Release(p) (p)->lpVtbl->Release(p)
308#define IDirectSoundBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
309#define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
310#define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
311#define IDirectSoundBuffer_GetVolume(p,a) (p)->lpVtbl->GetVolume(p,a)
312#define IDirectSoundBuffer_GetPan(p,a) (p)->lpVtbl->GetPan(p,a)
313#define IDirectSoundBuffer_GetFrequency(p,a) (p)->lpVtbl->GetFrequency(p,a)
314#define IDirectSoundBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
315#define IDirectSoundBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
316#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
317#define IDirectSoundBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c)
318#define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->lpVtbl->SetCurrentPosition(p,a)
319#define IDirectSoundBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
320#define IDirectSoundBuffer_SetVolume(p,a) (p)->lpVtbl->SetVolume(p,a)
321#define IDirectSoundBuffer_SetPan(p,a) (p)->lpVtbl->SetPan(p,a)
322#define IDirectSoundBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a)
323#define IDirectSoundBuffer_Stop(p) (p)->lpVtbl->Stop(p)
324#define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
325#define IDirectSoundBuffer_Restore(p) (p)->lpVtbl->Restore(p)
326#else // !defined(__cplusplus) || defined(CINTERFACE)
327#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
328#define IDirectSoundBuffer_AddRef(p) (p)->AddRef()
329#define IDirectSoundBuffer_Release(p) (p)->Release()
330#define IDirectSoundBuffer_GetCaps(p,a) (p)->GetCaps(a)
331#define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
332#define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c)
333#define IDirectSoundBuffer_GetVolume(p,a) (p)->GetVolume(a)
334#define IDirectSoundBuffer_GetPan(p,a) (p)->GetPan(a)
335#define IDirectSoundBuffer_GetFrequency(p,a) (p)->GetFrequency(a)
336#define IDirectSoundBuffer_GetStatus(p,a) (p)->GetStatus(a)
337#define IDirectSoundBuffer_Initialize(p,a,b) (p)->Initialize(a,b)
338#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g)
339#define IDirectSoundBuffer_Play(p,a,b,c) (p)->Play(a,b,c)
340#define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->SetCurrentPosition(a)
341#define IDirectSoundBuffer_SetFormat(p,a) (p)->SetFormat(a)
342#define IDirectSoundBuffer_SetVolume(p,a) (p)->SetVolume(a)
343#define IDirectSoundBuffer_SetPan(p,a) (p)->SetPan(a)
344#define IDirectSoundBuffer_SetFrequency(p,a) (p)->SetFrequency(a)
345#define IDirectSoundBuffer_Stop(p) (p)->Stop()
346#define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d)
347#define IDirectSoundBuffer_Restore(p) (p)->Restore()
348#endif // !defined(__cplusplus) || defined(CINTERFACE)
349
350//
351// IDirectSound3DListener
352//
353
354DEFINE_GUID(IID_IDirectSound3DListener, 0x279AFA84, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
355
356#undef INTERFACE
357#define INTERFACE IDirectSound3DListener
358
359DECLARE_INTERFACE_(IDirectSound3DListener, IUnknown)
360{
361 // IUnknown methods
362 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
363 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
364 STDMETHOD_(ULONG,Release) (THIS) PURE;
365
366 // IDirectSound3D methods
367 STDMETHOD(GetAllParameters) (THIS_ LPDS3DLISTENER) PURE;
368 STDMETHOD(GetDistanceFactor) (THIS_ LPD3DVALUE) PURE;
369 STDMETHOD(GetDopplerFactor) (THIS_ LPD3DVALUE) PURE;
370 STDMETHOD(GetOrientation) (THIS_ LPD3DVECTOR, LPD3DVECTOR) PURE;
371 STDMETHOD(GetPosition) (THIS_ LPD3DVECTOR) PURE;
372 STDMETHOD(GetRolloffFactor) (THIS_ LPD3DVALUE) PURE;
373 STDMETHOD(GetVelocity) (THIS_ LPD3DVECTOR) PURE;
374 STDMETHOD(SetAllParameters) (THIS_ LPCDS3DLISTENER, DWORD) PURE;
375 STDMETHOD(SetDistanceFactor) (THIS_ D3DVALUE, DWORD) PURE;
376 STDMETHOD(SetDopplerFactor) (THIS_ D3DVALUE, DWORD) PURE;
377 STDMETHOD(SetOrientation) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE, DWORD) PURE;
378 STDMETHOD(SetPosition) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) PURE;
379 STDMETHOD(SetRolloffFactor) (THIS_ D3DVALUE, DWORD) PURE;
380 STDMETHOD(SetVelocity) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) PURE;
381 STDMETHOD(CommitDeferredSettings) (THIS) PURE;
382};
383
384#if !defined(__cplusplus) || defined(CINTERFACE)
385#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
386#define IDirectSound3DListener_AddRef(p) (p)->lpVtbl->AddRef(p)
387#define IDirectSound3DListener_Release(p) (p)->lpVtbl->Release(p)
388#define IDirectSound3DListener_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a)
389#define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->lpVtbl->GetDistanceFactor(p,a)
390#define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->lpVtbl->GetDopplerFactor(p,a)
391#define IDirectSound3DListener_GetOrientation(p,a,b) (p)->lpVtbl->GetOrientation(p,a,b)
392#define IDirectSound3DListener_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a)
393#define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->lpVtbl->GetRolloffFactor(p,a)
394#define IDirectSound3DListener_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a)
395#define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b)
396#define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->lpVtbl->SetDistanceFactor(p,a,b)
397#define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->lpVtbl->SetDopplerFactor(p,a,b)
398#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
399#define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
400#define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->lpVtbl->SetRolloffFactor(p,a,b)
401#define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d)
402#define IDirectSound3DListener_CommitDeferredSettings(p) (p)->lpVtbl->CommitDeferredSettings(p)
403#else // !defined(__cplusplus) || defined(CINTERFACE)
404#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
405#define IDirectSound3DListener_AddRef(p) (p)->AddRef()
406#define IDirectSound3DListener_Release(p) (p)->Release()
407#define IDirectSound3DListener_GetAllParameters(p,a) (p)->GetAllParameters(a)
408#define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->GetDistanceFactor(a)
409#define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->GetDopplerFactor(a)
410#define IDirectSound3DListener_GetOrientation(p,a,b) (p)->GetOrientation(a,b)
411#define IDirectSound3DListener_GetPosition(p,a) (p)->GetPosition(a)
412#define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->GetRolloffFactor(a)
413#define IDirectSound3DListener_GetVelocity(p,a) (p)->GetVelocity(a)
414#define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b)
415#define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->SetDistanceFactor(a,b)
416#define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->SetDopplerFactor(a,b)
417#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
418#define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
419#define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->SetRolloffFactor(a,b)
420#define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d)
421#define IDirectSound3DListener_CommitDeferredSettings(p) (p)->CommitDeferredSettings()
422#endif // !defined(__cplusplus) || defined(CINTERFACE)
423
424//
425// IDirectSound3DBuffer
426//
427
428DEFINE_GUID(IID_IDirectSound3DBuffer, 0x279AFA86, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
429
430#undef INTERFACE
431#define INTERFACE IDirectSound3DBuffer
432
433DECLARE_INTERFACE_(IDirectSound3DBuffer, IUnknown)
434{
435 // IUnknown methods
436 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
437 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
438 STDMETHOD_(ULONG,Release) (THIS) PURE;
439
440 // IDirectSoundBuffer3D methods
441 STDMETHOD(GetAllParameters) (THIS_ LPDS3DBUFFER) PURE;
442 STDMETHOD(GetConeAngles) (THIS_ LPDWORD, LPDWORD) PURE;
443 STDMETHOD(GetConeOrientation) (THIS_ LPD3DVECTOR) PURE;
444 STDMETHOD(GetConeOutsideVolume) (THIS_ LPLONG) PURE;
445 STDMETHOD(GetMaxDistance) (THIS_ LPD3DVALUE) PURE;
446 STDMETHOD(GetMinDistance) (THIS_ LPD3DVALUE) PURE;
447 STDMETHOD(GetMode) (THIS_ LPDWORD) PURE;
448 STDMETHOD(GetPosition) (THIS_ LPD3DVECTOR) PURE;
449 STDMETHOD(GetVelocity) (THIS_ LPD3DVECTOR) PURE;
450 STDMETHOD(SetAllParameters) (THIS_ LPCDS3DBUFFER, DWORD) PURE;
451 STDMETHOD(SetConeAngles) (THIS_ DWORD, DWORD, DWORD) PURE;
452 STDMETHOD(SetConeOrientation) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) PURE;
453 STDMETHOD(SetConeOutsideVolume) (THIS_ LONG, DWORD) PURE;
454 STDMETHOD(SetMaxDistance) (THIS_ D3DVALUE, DWORD) PURE;
455 STDMETHOD(SetMinDistance) (THIS_ D3DVALUE, DWORD) PURE;
456 STDMETHOD(SetMode) (THIS_ DWORD, DWORD) PURE;
457 STDMETHOD(SetPosition) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) PURE;
458 STDMETHOD(SetVelocity) (THIS_ D3DVALUE, D3DVALUE, D3DVALUE, DWORD) PURE;
459};
460
461#if !defined(__cplusplus) || defined(CINTERFACE)
462#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
463#define IDirectSound3DBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
464#define IDirectSound3DBuffer_Release(p) (p)->lpVtbl->Release(p)
465#define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a)
466#define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->lpVtbl->GetConeAngles(p,a,b)
467#define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->lpVtbl->GetConeOrientation(p,a)
468#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->lpVtbl->GetConeOutsideVolume(p,a)
469#define IDirectSound3DBuffer_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a)
470#define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->lpVtbl->GetMinDistance(p,a)
471#define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->lpVtbl->GetMaxDistance(p,a)
472#define IDirectSound3DBuffer_GetMode(p,a) (p)->lpVtbl->GetMode(p,a)
473#define IDirectSound3DBuffer_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a)
474#define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b)
475#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c) (p)->lpVtbl->SetConeAngles(p,a,b,c)
476#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->lpVtbl->SetConeOrientation(p,a,b,c,d)
477#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b)(p)->lpVtbl->SetConeOutsideVolume(p,a,b)
478#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
479#define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->lpVtbl->SetMinDistance(p,a,b)
480#define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->lpVtbl->SetMaxDistance(p,a,b)
481#define IDirectSound3DBuffer_SetMode(p,a,b) (p)->lpVtbl->SetMode(p,a,b)
482#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d)
483#else // !defined(__cplusplus) || defined(CINTERFACE)
484#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
485#define IDirectSound3DBuffer_AddRef(p) (p)->AddRef()
486#define IDirectSound3DBuffer_Release(p) (p)->Release()
487#define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->GetAllParameters(a)
488#define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->GetConeAngles(a,b)
489#define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->GetConeOrientation(a)
490#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->GetConeOutsideVolume(a)
491#define IDirectSound3DBuffer_GetPosition(p,a) (p)->GetPosition(a)
492#define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->GetMinDistance(a)
493#define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->GetMaxDistance(a)
494#define IDirectSound3DBuffer_GetMode(p,a) (p)->GetMode(a)
495#define IDirectSound3DBuffer_GetVelocity(p,a) (p)->GetVelocity(a)
496#define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b)
497#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c) (p)->SetConeAngles(a,b,c)
498#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->SetConeOrientation(a,b,c,d)
499#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b)(p)->SetConeOutsideVolume(a,b)
500#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
501#define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->SetMinDistance(a,b)
502#define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->SetMaxDistance(a,b)
503#define IDirectSound3DBuffer_SetMode(p,a,b) (p)->SetMode(a,b)
504#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d)
505#endif // !defined(__cplusplus) || defined(CINTERFACE)
506
507//
508// IDirectSoundCapture
509//
510
511DEFINE_GUID(IID_IDirectSoundCapture, 0xb0210781, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
512
513#undef INTERFACE
514#define INTERFACE IDirectSoundCapture
515
516DECLARE_INTERFACE_(IDirectSoundCapture, IUnknown)
517{
518 // IUnknown methods
519 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
520 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
521 STDMETHOD_(ULONG,Release) (THIS) PURE;
522
523 // IDirectSoundCapture methods
524 STDMETHOD(CreateCaptureBuffer) (THIS_ LPCDSCBUFFERDESC, LPDIRECTSOUNDCAPTUREBUFFER *, LPUNKNOWN) PURE;
525 STDMETHOD(GetCaps) (THIS_ LPDSCCAPS ) PURE;
526 STDMETHOD(Initialize) (THIS_ LPGUID) PURE;
527};
528
529#if !defined(__cplusplus) || defined(CINTERFACE)
530#define IDirectSoundCapture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
531#define IDirectSoundCapture_AddRef(p) (p)->lpVtbl->AddRef(p)
532#define IDirectSoundCapture_Release(p) (p)->lpVtbl->Release(p)
533#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c)
534#define IDirectSoundCapture_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
535#define IDirectSoundCapture_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
536#else // !defined(__cplusplus) || defined(CINTERFACE)
537#define IDirectSoundCapture_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
538#define IDirectSoundCapture_AddRef(p) (p)->AddRef()
539#define IDirectSoundCapture_Release(p) (p)->Release()
540#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->CreateCaptureBuffer(a,b,c)
541#define IDirectSoundCapture_GetCaps(p,a) (p)->GetCaps(a)
542#define IDirectSoundCapture_Initialize(p,a) (p)->Initialize(a)
543#endif // !defined(__cplusplus) || defined(CINTERFACE)
544
545//
546// IDirectSoundCaptureBuffer
547//
548
549DEFINE_GUID(IID_IDirectSoundCaptureBuffer, 0xb0210782, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
550
551#undef INTERFACE
552#define INTERFACE IDirectSoundCaptureBuffer
553
554DECLARE_INTERFACE_(IDirectSoundCaptureBuffer, IUnknown)
555{
556 // IUnknown methods
557 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
558 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
559 STDMETHOD_(ULONG,Release) (THIS) PURE;
560
561 // IDirectSoundCaptureBuffer methods
562 STDMETHOD(GetCaps) (THIS_ LPDSCBCAPS ) PURE;
563 STDMETHOD(GetCurrentPosition) (THIS_ LPDWORD, LPDWORD ) PURE;
564 STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX, DWORD, LPDWORD ) PURE;
565 STDMETHOD(GetStatus) (THIS_ LPDWORD ) PURE;
566 STDMETHOD(Initialize) (THIS_ LPDIRECTSOUNDCAPTURE, LPCDSCBUFFERDESC) PURE;
567 STDMETHOD(Lock) (THIS_ DWORD, DWORD, LPVOID *, LPDWORD, LPVOID *, LPDWORD, DWORD) PURE;
568 STDMETHOD(Start) (THIS_ DWORD) PURE;
569 STDMETHOD(Stop) (THIS) PURE;
570 STDMETHOD(Unlock) (THIS_ LPVOID, DWORD, LPVOID, DWORD) PURE;
571};
572
573#if !defined(__cplusplus) || defined(CINTERFACE)
574#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
575#define IDirectSoundCaptureBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
576#define IDirectSoundCaptureBuffer_Release(p) (p)->lpVtbl->Release(p)
577#define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
578#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
579#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
580#define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
581#define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
582#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
583#define IDirectSoundCaptureBuffer_Start(p,a) (p)->lpVtbl->Start(p,a)
584#define IDirectSoundCaptureBuffer_Stop(p) (p)->lpVtbl->Stop(p)
585#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
586#else // !defined(__cplusplus) || defined(CINTERFACE)
587#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
588#define IDirectSoundCaptureBuffer_AddRef(p) (p)->AddRef()
589#define IDirectSoundCaptureBuffer_Release(p) (p)->Release()
590#define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->GetCaps(a)
591#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
592#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c)
593#define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->GetStatus(a)
594#define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->Initialize(a,b)
595#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g)
596#define IDirectSoundCaptureBuffer_Start(p,a) (p)->Start(a)
597#define IDirectSoundCaptureBuffer_Stop(p) (p)->Stop()
598#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d)
599#endif // !defined(__cplusplus) || defined(CINTERFACE)
600
601//
602// IDirectSoundNotify
603//
604
605DEFINE_GUID(IID_IDirectSoundNotify, 0xb0210783, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
606
607#undef INTERFACE
608#define INTERFACE IDirectSoundNotify
609
610DECLARE_INTERFACE_(IDirectSoundNotify, IUnknown)
611{
612 // IUnknown methods
613 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
614 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
615 STDMETHOD_(ULONG,Release) (THIS) PURE;
616
617 // IDirectSoundNotify methods
618 STDMETHOD(SetNotificationPositions) (THIS_ DWORD, LPCDSBPOSITIONNOTIFY) PURE;
619};
620
621#if !defined(__cplusplus) || defined(CINTERFACE)
622#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
623#define IDirectSoundNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
624#define IDirectSoundNotify_Release(p) (p)->lpVtbl->Release(p)
625#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
626#else // !defined(__cplusplus) || defined(CINTERFACE)
627#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
628#define IDirectSoundNotify_AddRef(p) (p)->AddRef()
629#define IDirectSoundNotify_Release(p) (p)->Release()
630#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->SetNotificationPositions(a,b)
631#endif // !defined(__cplusplus) || defined(CINTERFACE)
632
633//
634// IKsPropertySet
635//
636
637#ifndef _IKsPropertySet_
638#define _IKsPropertySet_
639
640#ifdef __cplusplus
641// 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined
642struct IKsPropertySet;
643#endif // __cplusplus
644
645typedef struct IKsPropertySet *LPKSPROPERTYSET;
646
647#define KSPROPERTY_SUPPORT_GET 0x00000001
648#define KSPROPERTY_SUPPORT_SET 0x00000002
649
650DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9, 0xaa, 0x00, 0xaa, 0x00, 0x61, 0xbe, 0x93);
651
652#undef INTERFACE
653#define INTERFACE IKsPropertySet
654
656{
657 // IUnknown methods
658 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
659 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
660 STDMETHOD_(ULONG,Release) (THIS) PURE;
661
662 // IKsPropertySet methods
663 STDMETHOD(Get) (THIS_ REFGUID, ULONG, LPVOID, ULONG, LPVOID, ULONG, PULONG) PURE;
664 STDMETHOD(Set) (THIS_ REFGUID, ULONG, LPVOID, ULONG, LPVOID, ULONG) PURE;
665 STDMETHOD(QuerySupport) (THIS_ REFGUID, ULONG, PULONG) PURE;
666};
667
668#if !defined(__cplusplus) || defined(CINTERFACE)
669#define IKsPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
670#define IKsPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
671#define IKsPropertySet_Release(p) (p)->lpVtbl->Release(p)
672#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
673#define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f)
674#define IKsPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c)
675#else // !defined(__cplusplus) || defined(CINTERFACE)
676#define IKsPropertySet_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
677#define IKsPropertySet_AddRef(p) (p)->AddRef()
678#define IKsPropertySet_Release(p) (p)->Release()
679#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->Get(a,b,c,d,e,f,g)
680#define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->Set(a,b,c,d,e,f)
681#define IKsPropertySet_QuerySupport(p,a,b,c) (p)->QuerySupport(a,b,c)
682#endif // !defined(__cplusplus) || defined(CINTERFACE)
683
684#endif // _IKsPropertySet_
685
686//
687// Return Codes
688//
689
690#define DS_OK 0
691
694#define DSERR_ALLOCATED MAKE_DSHRESULT(10)
695
697#define DSERR_CONTROLUNAVAIL MAKE_DSHRESULT(30)
698
700#define DSERR_INVALIDPARAM E_INVALIDARG
701
703#define DSERR_INVALIDCALL MAKE_DSHRESULT(50)
704
706#define DSERR_GENERIC E_FAIL
707
710#define DSERR_PRIOLEVELNEEDED MAKE_DSHRESULT(70)
711
713#define DSERR_OUTOFMEMORY E_OUTOFMEMORY
714
716#define DSERR_BADFORMAT MAKE_DSHRESULT(100)
717
719#define DSERR_UNSUPPORTED E_NOTIMPL
720
722#define DSERR_NODRIVER MAKE_DSHRESULT(120)
723
725#define DSERR_ALREADYINITIALIZED MAKE_DSHRESULT(130)
726
728#define DSERR_NOAGGREGATION CLASS_E_NOAGGREGATION
729
731#define DSERR_BUFFERLOST MAKE_DSHRESULT(150)
732
735#define DSERR_OTHERAPPHASPRIO MAKE_DSHRESULT(160)
736
738#define DSERR_UNINITIALIZED MAKE_DSHRESULT(170)
739
741#define DSERR_NOINTERFACE E_NOINTERFACE
742
743//
744// Flags
745//
746
747#define DSCAPS_PRIMARYMONO 0x00000001
748#define DSCAPS_PRIMARYSTEREO 0x00000002
749#define DSCAPS_PRIMARY8BIT 0x00000004
750#define DSCAPS_PRIMARY16BIT 0x00000008
751#define DSCAPS_CONTINUOUSRATE 0x00000010
752#define DSCAPS_EMULDRIVER 0x00000020
753#define DSCAPS_CERTIFIED 0x00000040
754#define DSCAPS_SECONDARYMONO 0x00000100
755#define DSCAPS_SECONDARYSTEREO 0x00000200
756#define DSCAPS_SECONDARY8BIT 0x00000400
757#define DSCAPS_SECONDARY16BIT 0x00000800
758
759#define DSBPLAY_LOOPING 0x00000001
760
761#define DSBSTATUS_PLAYING 0x00000001
762#define DSBSTATUS_BUFFERLOST 0x00000002
763#define DSBSTATUS_LOOPING 0x00000004
764
765#define DSBLOCK_FROMWRITECURSOR 0x00000001
766#define DSBLOCK_ENTIREBUFFER 0x00000002
767
768#define DSSCL_NORMAL 0x00000001
769#define DSSCL_PRIORITY 0x00000002
770#define DSSCL_EXCLUSIVE 0x00000003
771#define DSSCL_WRITEPRIMARY 0x00000004
772
773#define DS3DMODE_NORMAL 0x00000000
774#define DS3DMODE_HEADRELATIVE 0x00000001
775#define DS3DMODE_DISABLE 0x00000002
776
777#define DS3D_IMMEDIATE 0x00000000
778#define DS3D_DEFERRED 0x00000001
779
780#define DS3D_MINDISTANCEFACTOR 0.0f
781#define DS3D_MAXDISTANCEFACTOR 10.0f
782#define DS3D_DEFAULTDISTANCEFACTOR 1.0f
783
784#define DS3D_MINROLLOFFFACTOR 0.0f
785#define DS3D_MAXROLLOFFFACTOR 10.0f
786#define DS3D_DEFAULTROLLOFFFACTOR 1.0f
787
788#define DS3D_MINDOPPLERFACTOR 0.0f
789#define DS3D_MAXDOPPLERFACTOR 10.0f
790#define DS3D_DEFAULTDOPPLERFACTOR 1.0f
791
792#define DS3D_DEFAULTMINDISTANCE 1.0f
793#define DS3D_DEFAULTMAXDISTANCE 1000000000.0f
794
795#define DS3D_MINCONEANGLE 0
796#define DS3D_MAXCONEANGLE 360
797#define DS3D_DEFAULTCONEANGLE 360
798
799#define DS3D_DEFAULTCONEOUTSIDEVOLUME 0
800
801#define DSBCAPS_PRIMARYBUFFER 0x00000001
802#define DSBCAPS_STATIC 0x00000002
803#define DSBCAPS_LOCHARDWARE 0x00000004
804#define DSBCAPS_LOCSOFTWARE 0x00000008
805#define DSBCAPS_CTRL3D 0x00000010
806#define DSBCAPS_CTRLFREQUENCY 0x00000020
807#define DSBCAPS_CTRLPAN 0x00000040
808#define DSBCAPS_CTRLVOLUME 0x00000080
809#define DSBCAPS_CTRLPOSITIONNOTIFY 0x00000100
810#define DSBCAPS_CTRLDEFAULT 0x000000E0
811#define DSBCAPS_CTRLALL 0x000001F0
812#define DSBCAPS_STICKYFOCUS 0x00004000
813#define DSBCAPS_GLOBALFOCUS 0x00008000
814#define DSBCAPS_GETCURRENTPOSITION2 0x00010000
815#define DSBCAPS_MUTE3DATMAXDISTANCE 0x00020000
816
817#define DSCBCAPS_WAVEMAPPED 0x80000000
818
819#define DSSPEAKER_HEADPHONE 0x00000001
820#define DSSPEAKER_MONO 0x00000002
821#define DSSPEAKER_QUAD 0x00000003
822#define DSSPEAKER_STEREO 0x00000004
823#define DSSPEAKER_SURROUND 0x00000005
824
825#define DSSPEAKER_GEOMETRY_MIN 0x00000005
826#define DSSPEAKER_GEOMETRY_NARROW 0x0000000A
827#define DSSPEAKER_GEOMETRY_WIDE 0x00000014
828#define DSSPEAKER_GEOMETRY_MAX 0x000000B4
829
830#define DSSPEAKER_COMBINED(c, g) ((DWORD)(((BYTE)(c)) | ((DWORD)((BYTE)(g))) << 16))
831#define DSSPEAKER_CONFIG(a) ((BYTE)(a))
832#define DSSPEAKER_GEOMETRY(a) ((BYTE)(((DWORD)(a) >> 16) & 0x00FF))
833
834#define DSCCAPS_EMULDRIVER 0x00000020
835
836#define DSCBLOCK_ENTIREBUFFER 0x00000001
837
838#define DSCBSTATUS_CAPTURING 0x00000001
839#define DSCBSTATUS_LOOPING 0x00000002
840
841#define DSCBSTART_LOOPING 0x00000001
842
843#define DSBFREQUENCY_MIN 100
844#define DSBFREQUENCY_MAX 100000
845#define DSBFREQUENCY_ORIGINAL 0
846
847#define DSBPAN_LEFT -10000
848#define DSBPAN_CENTER 0
849#define DSBPAN_RIGHT 10000
850
851#define DSBVOLUME_MIN -10000
852#define DSBVOLUME_MAX 0
853
854#define DSBSIZE_MIN 4
855#define DSBSIZE_MAX 0x0FFFFFFF
856
857#define DSBPN_OFFSETSTOP 0xFFFFFFFF
858
859#ifdef __cplusplus
860};
861#endif // __cplusplus
862
863#endif // __DSOUND_INCLUDED__
LPSTR LPSTR LPVOID
Definition: d3dcaps.h:213
float D3DVALUE
Definition: d3dtypes.h:28
float * LPD3DVALUE
Definition: d3dtypes.h:28
struct _D3DVECTOR * LPD3DVECTOR
#define IUnknown
Definition: ddraw.h:28
typedef DWORD(FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper
long HRESULT
Definition: ddraw.h:115
typedef BOOL(FAR PASCAL *LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA
struct _DSBUFFERDESC DSBUFFERDESC
BOOL(CALLBACK * LPDSENUMCALLBACKW)(LPGUID, LPCWSTR, LPCWSTR, LPVOID)
Definition: dsound.h:193
LPDIRECTSOUND3DBUFFER * LPLPDIRECTSOUND3DBUFFER
Definition: dsound.h:182
struct IDirectSoundCapture * LPDIRECTSOUNDCAPTURE
Definition: dsound.h:50
struct IDirectSoundCaptureBuffer * LPDIRECTSOUNDCAPTUREBUFFER
Definition: dsound.h:51
const WAVEFORMATEX * LPCWAVEFORMATEX
Definition: dsound.h:187
struct IDirectSoundBuffer * LPDIRECTSOUNDBUFFER
Definition: dsound.h:47
struct _DSBUFFERDESC * LPDSBUFFERDESC
LPDIRECTSOUNDCAPTUREBUFFER * LPLPDIRECTSOUNDCAPTUREBUFFER
Definition: dsound.h:184
const DSBCAPS * LPCDSBCAPS
Definition: dsound.h:93
const DS3DBUFFER * LPCDS3DBUFFER
Definition: dsound.h:120
struct _DSBPOSITIONNOTIFY DSBPOSITIONNOTIFY
struct _DSCBUFFERDESC * LPDSCBUFFERDESC
HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID)
struct IDirectSound3DBuffer * LPDIRECTSOUND3DBUFFER
Definition: dsound.h:49
HRESULT WINAPI DirectSoundCreate(LPGUID, LPDIRECTSOUND *, LPUNKNOWN)
struct _DSCCAPS * LPDSCCAPS
struct IKsPropertySet * LPKSPROPERTYSET
Definition: dsound.h:645
DECLARE_INTERFACE_(IDirectSound, IUnknown)
Definition: dsound.h:223
struct IDirectSound3DListener * LPDIRECTSOUND3DLISTENER
Definition: dsound.h:48
struct _DSCAPS * LPDSCAPS
const DSCBCAPS * LPCDSCBCAPS
Definition: dsound.h:165
LPDIRECTSOUND3DLISTENER * LPLPDIRECTSOUND3DLISTENER
Definition: dsound.h:181
HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW, LPVOID)
LPDIRECTSOUNDCAPTURE * LPLPDIRECTSOUNDCAPTURE
Definition: dsound.h:183
struct IDirectSound * LPDIRECTSOUND
Definition: dsound.h:46
struct _DS3DBUFFER * LPDS3DBUFFER
struct _DSBPOSITIONNOTIFY * LPDSBPOSITIONNOTIFY
HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID)
const DS3DLISTENER * LPCDS3DLISTENER
Definition: dsound.h:134
struct _DS3DLISTENER * LPDS3DLISTENER
HRESULT WINAPI DirectSoundCaptureCreate(LPGUID, LPDIRECTSOUNDCAPTURE *, LPUNKNOWN)
const DSCCAPS * LPCDSCCAPS
Definition: dsound.h:144
struct _DSBCAPS DSBCAPS
struct IDirectSoundNotify * LPDIRECTSOUNDNOTIFY
Definition: dsound.h:52
BOOL(CALLBACK * LPDSENUMCALLBACKA)(LPGUID, LPCSTR, LPCSTR, LPVOID)
Definition: dsound.h:194
LPDIRECTSOUNDBUFFER * LPLPDIRECTSOUNDBUFFER
Definition: dsound.h:180
const DSCAPS * LPCDSCAPS
Definition: dsound.h:82
LPVOID * LPLPVOID
Definition: dsound.h:186
struct _DSBCAPS * LPDSBCAPS
struct _DSCBUFFERDESC DSCBUFFERDESC
HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA, LPVOID)
struct _DS3DBUFFER DS3DBUFFER
struct _DSCBCAPS * LPDSCBCAPS
struct _DSCAPS DSCAPS
struct _DSCCAPS DSCCAPS
struct _DS3DLISTENER DS3DLISTENER
LPDIRECTSOUNDNOTIFY * LPLPDIRECTSOUNDNOTIFY
Definition: dsound.h:185
const DSBUFFERDESC * LPCDSBUFFERDESC
Definition: dsound.h:104
LPDIRECTSOUND * LPLPDIRECTSOUND
Definition: dsound.h:179
struct _DSCBCAPS DSCBCAPS
const DSCBUFFERDESC * LPCDSCBUFFERDESC
Definition: dsound.h:155
const DSBPOSITIONNOTIFY * LPCDSBPOSITIONNOTIFY
Definition: dsound.h:173
DEFINE_GUID(CLSID_DirectSound, 0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0)
Direct Sound Component GUID {47D4D946-62E8-11cf-93BC-444553540000}.
Definition: d3dtypes.h:147
Definition: dsound.h:107
DWORD dwInsideConeAngle
Definition: dsound.h:111
D3DVECTOR vConeOrientation
Definition: dsound.h:113
DWORD dwOutsideConeAngle
Definition: dsound.h:112
DWORD dwMode
Definition: dsound.h:117
DWORD dwSize
Definition: dsound.h:108
D3DVECTOR vPosition
Definition: dsound.h:109
D3DVECTOR vVelocity
Definition: dsound.h:110
LONG lConeOutsideVolume
Definition: dsound.h:114
D3DVALUE flMinDistance
Definition: dsound.h:115
D3DVALUE flMaxDistance
Definition: dsound.h:116
Definition: dsound.h:123
D3DVECTOR vOrientTop
Definition: dsound.h:128
DWORD dwSize
Definition: dsound.h:124
D3DVALUE flDopplerFactor
Definition: dsound.h:131
D3DVECTOR vVelocity
Definition: dsound.h:126
D3DVALUE flRolloffFactor
Definition: dsound.h:130
D3DVALUE flDistanceFactor
Definition: dsound.h:129
D3DVECTOR vPosition
Definition: dsound.h:125
D3DVECTOR vOrientFront
Definition: dsound.h:127
Definition: dsound.h:85
DWORD dwUnlockTransferRate
Definition: dsound.h:89
DWORD dwPlayCpuOverhead
Definition: dsound.h:90
DWORD dwBufferBytes
Definition: dsound.h:88
DWORD dwFlags
Definition: dsound.h:87
DWORD dwSize
Definition: dsound.h:86
Definition: dsound.h:168
DWORD dwOffset
Definition: dsound.h:169
HANDLE hEventNotify
Definition: dsound.h:170
Definition: dsound.h:96
DWORD dwSize
Definition: dsound.h:97
DWORD dwFlags
Definition: dsound.h:98
DWORD dwBufferBytes
Definition: dsound.h:99
DWORD dwReserved
Definition: dsound.h:100
LPWAVEFORMATEX lpwfxFormat
Definition: dsound.h:101
Definition: dsound.h:55
DWORD dwFlags
Definition: dsound.h:57
DWORD dwMaxContigFreeHwMemBytes
Definition: dsound.h:75
DWORD dwUnlockTransferRateHwBuffers
Definition: dsound.h:76
DWORD dwMaxHwMixingStreamingBuffers
Definition: dsound.h:63
DWORD dwMaxHw3DStreamingBuffers
Definition: dsound.h:69
DWORD dwReserved2
Definition: dsound.h:79
DWORD dwPrimaryBuffers
Definition: dsound.h:60
DWORD dwMaxSecondarySampleRate
Definition: dsound.h:59
DWORD dwFreeHw3DStreamingBuffers
Definition: dsound.h:72
DWORD dwMaxHw3DStaticBuffers
Definition: dsound.h:68
DWORD dwFreeHw3DStaticBuffers
Definition: dsound.h:71
DWORD dwTotalHwMemBytes
Definition: dsound.h:73
DWORD dwFreeHwMixingStaticBuffers
Definition: dsound.h:65
DWORD dwFreeHwMixingStreamingBuffers
Definition: dsound.h:66
DWORD dwMinSecondarySampleRate
Definition: dsound.h:58
DWORD dwMaxHwMixingAllBuffers
Definition: dsound.h:61
DWORD dwPlayCpuOverheadSwBuffers
Definition: dsound.h:77
DWORD dwReserved1
Definition: dsound.h:78
DWORD dwMaxHwMixingStaticBuffers
Definition: dsound.h:62
DWORD dwSize
Definition: dsound.h:56
DWORD dwFreeHwMixingAllBuffers
Definition: dsound.h:64
DWORD dwMaxHw3DAllBuffers
Definition: dsound.h:67
DWORD dwFreeHwMemBytes
Definition: dsound.h:74
DWORD dwFreeHw3DAllBuffers
Definition: dsound.h:70
Definition: dsound.h:158
DWORD dwFlags
Definition: dsound.h:160
DWORD dwBufferBytes
Definition: dsound.h:161
DWORD dwReserved
Definition: dsound.h:162
DWORD dwSize
Definition: dsound.h:159
Definition: dsound.h:147
DWORD dwBufferBytes
Definition: dsound.h:150
LPWAVEFORMATEX lpwfxFormat
Definition: dsound.h:152
DWORD dwReserved
Definition: dsound.h:151
DWORD dwSize
Definition: dsound.h:148
DWORD dwFlags
Definition: dsound.h:149
Definition: dsound.h:137
DWORD dwChannels
Definition: dsound.h:141
DWORD dwSize
Definition: dsound.h:138
DWORD dwFormats
Definition: dsound.h:140
DWORD dwFlags
Definition: dsound.h:139