10#ifndef __DSOUND_INCLUDED__
11#define __DSOUND_INCLUDED__
15#define COM_NO_WINDOWS_H
19#define MAKE_DSHRESULT(code) MAKE_HRESULT(1, _FACDS, code)
26DEFINE_GUID(CLSID_DirectSound, 0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
29DEFINE_GUID(CLSID_DirectSoundCapture, 0xb0210780, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
38struct IDirectSoundBuffer;
39struct IDirectSound3DListener;
40struct IDirectSound3DBuffer;
41struct IDirectSoundCapture;
42struct IDirectSoundCaptureBuffer;
43struct IDirectSoundNotify;
205#define LPDSENUMCALLBACK LPDSENUMCALLBACKW
206#define DirectSoundEnumerate DirectSoundEnumerateW
207#define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateW
209#define LPDSENUMCALLBACK LPDSENUMCALLBACKA
210#define DirectSoundEnumerate DirectSoundEnumerateA
211#define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateA
218DEFINE_GUID(IID_IDirectSound, 0x279AFA83, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
221#define INTERFACE IDirectSound
226 STDMETHOD(QueryInterface) (THIS_ REFIID,
LPVOID FAR *) PURE;
227 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
228 STDMETHOD_(ULONG,Release) (THIS) PURE;
232 STDMETHOD(GetCaps) (THIS_
LPDSCAPS) 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;
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)
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)
271DEFINE_GUID(IID_IDirectSoundBuffer, 0x279AFA85, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
274#define INTERFACE IDirectSoundBuffer
279 STDMETHOD(QueryInterface) (THIS_ REFIID,
LPVOID FAR *) PURE;
280 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
281 STDMETHOD_(ULONG,Release) (THIS) PURE;
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;
294 STDMETHOD(SetCurrentPosition) (THIS_
DWORD) PURE;
296 STDMETHOD(SetVolume) (THIS_ LONG) PURE;
297 STDMETHOD(SetPan) (THIS_ LONG) PURE;
298 STDMETHOD(SetFrequency) (THIS_
DWORD) PURE;
299 STDMETHOD(Stop) (THIS) PURE;
301 STDMETHOD(Restore) (THIS) PURE;
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)
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()
354DEFINE_GUID(IID_IDirectSound3DListener, 0x279AFA84, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
357#define INTERFACE IDirectSound3DListener
362 STDMETHOD(QueryInterface) (THIS_ REFIID,
LPVOID FAR *) PURE;
363 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
364 STDMETHOD_(ULONG,Release) (THIS) PURE;
368 STDMETHOD(GetDistanceFactor) (THIS_
LPD3DVALUE) PURE;
369 STDMETHOD(GetDopplerFactor) (THIS_
LPD3DVALUE) PURE;
372 STDMETHOD(GetRolloffFactor) (THIS_
LPD3DVALUE) PURE;
381 STDMETHOD(CommitDeferredSettings) (THIS) PURE;
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)
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()
428DEFINE_GUID(IID_IDirectSound3DBuffer, 0x279AFA86, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
431#define INTERFACE IDirectSound3DBuffer
436 STDMETHOD(QueryInterface) (THIS_ REFIID,
LPVOID *) PURE;
437 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
438 STDMETHOD_(ULONG,Release) (THIS) 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;
453 STDMETHOD(SetConeOutsideVolume) (THIS_ LONG,
DWORD) PURE;
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)
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)
511DEFINE_GUID(IID_IDirectSoundCapture, 0xb0210781, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
514#define INTERFACE IDirectSoundCapture
519 STDMETHOD(QueryInterface) (THIS_ REFIID,
LPVOID *) PURE;
520 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
521 STDMETHOD_(ULONG,Release) (THIS) PURE;
525 STDMETHOD(GetCaps) (THIS_
LPDSCCAPS ) PURE;
526 STDMETHOD(Initialize) (THIS_ LPGUID) PURE;
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)
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)
549DEFINE_GUID(IID_IDirectSoundCaptureBuffer, 0xb0210782, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
552#define INTERFACE IDirectSoundCaptureBuffer
557 STDMETHOD(QueryInterface) (THIS_ REFIID,
LPVOID *) PURE;
558 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
559 STDMETHOD_(ULONG,Release) (THIS) PURE;
563 STDMETHOD(GetCurrentPosition) (THIS_ LPDWORD, LPDWORD ) PURE;
564 STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX,
DWORD, LPDWORD ) PURE;
565 STDMETHOD(GetStatus) (THIS_ LPDWORD ) PURE;
569 STDMETHOD(Stop) (THIS) PURE;
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)
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)
605DEFINE_GUID(IID_IDirectSoundNotify, 0xb0210783, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
608#define INTERFACE IDirectSoundNotify
613 STDMETHOD(QueryInterface) (THIS_ REFIID,
LPVOID *) PURE;
614 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
615 STDMETHOD_(ULONG,Release) (THIS) PURE;
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)
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)
637#ifndef _IKsPropertySet_
638#define _IKsPropertySet_
642struct IKsPropertySet;
647#define KSPROPERTY_SUPPORT_GET 0x00000001
648#define KSPROPERTY_SUPPORT_SET 0x00000002
650DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9, 0xaa, 0x00, 0xaa, 0x00, 0x61, 0xbe, 0x93);
653#define INTERFACE IKsPropertySet
658 STDMETHOD(QueryInterface) (THIS_ REFIID,
LPVOID *) PURE;
659 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
660 STDMETHOD_(ULONG,Release) (THIS) PURE;
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;
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)
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)
694#define DSERR_ALLOCATED MAKE_DSHRESULT(10)
697#define DSERR_CONTROLUNAVAIL MAKE_DSHRESULT(30)
700#define DSERR_INVALIDPARAM E_INVALIDARG
703#define DSERR_INVALIDCALL MAKE_DSHRESULT(50)
706#define DSERR_GENERIC E_FAIL
710#define DSERR_PRIOLEVELNEEDED MAKE_DSHRESULT(70)
713#define DSERR_OUTOFMEMORY E_OUTOFMEMORY
716#define DSERR_BADFORMAT MAKE_DSHRESULT(100)
719#define DSERR_UNSUPPORTED E_NOTIMPL
722#define DSERR_NODRIVER MAKE_DSHRESULT(120)
725#define DSERR_ALREADYINITIALIZED MAKE_DSHRESULT(130)
728#define DSERR_NOAGGREGATION CLASS_E_NOAGGREGATION
731#define DSERR_BUFFERLOST MAKE_DSHRESULT(150)
735#define DSERR_OTHERAPPHASPRIO MAKE_DSHRESULT(160)
738#define DSERR_UNINITIALIZED MAKE_DSHRESULT(170)
741#define DSERR_NOINTERFACE E_NOINTERFACE
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
759#define DSBPLAY_LOOPING 0x00000001
761#define DSBSTATUS_PLAYING 0x00000001
762#define DSBSTATUS_BUFFERLOST 0x00000002
763#define DSBSTATUS_LOOPING 0x00000004
765#define DSBLOCK_FROMWRITECURSOR 0x00000001
766#define DSBLOCK_ENTIREBUFFER 0x00000002
768#define DSSCL_NORMAL 0x00000001
769#define DSSCL_PRIORITY 0x00000002
770#define DSSCL_EXCLUSIVE 0x00000003
771#define DSSCL_WRITEPRIMARY 0x00000004
773#define DS3DMODE_NORMAL 0x00000000
774#define DS3DMODE_HEADRELATIVE 0x00000001
775#define DS3DMODE_DISABLE 0x00000002
777#define DS3D_IMMEDIATE 0x00000000
778#define DS3D_DEFERRED 0x00000001
780#define DS3D_MINDISTANCEFACTOR 0.0f
781#define DS3D_MAXDISTANCEFACTOR 10.0f
782#define DS3D_DEFAULTDISTANCEFACTOR 1.0f
784#define DS3D_MINROLLOFFFACTOR 0.0f
785#define DS3D_MAXROLLOFFFACTOR 10.0f
786#define DS3D_DEFAULTROLLOFFFACTOR 1.0f
788#define DS3D_MINDOPPLERFACTOR 0.0f
789#define DS3D_MAXDOPPLERFACTOR 10.0f
790#define DS3D_DEFAULTDOPPLERFACTOR 1.0f
792#define DS3D_DEFAULTMINDISTANCE 1.0f
793#define DS3D_DEFAULTMAXDISTANCE 1000000000.0f
795#define DS3D_MINCONEANGLE 0
796#define DS3D_MAXCONEANGLE 360
797#define DS3D_DEFAULTCONEANGLE 360
799#define DS3D_DEFAULTCONEOUTSIDEVOLUME 0
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
817#define DSCBCAPS_WAVEMAPPED 0x80000000
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
825#define DSSPEAKER_GEOMETRY_MIN 0x00000005
826#define DSSPEAKER_GEOMETRY_NARROW 0x0000000A
827#define DSSPEAKER_GEOMETRY_WIDE 0x00000014
828#define DSSPEAKER_GEOMETRY_MAX 0x000000B4
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))
834#define DSCCAPS_EMULDRIVER 0x00000020
836#define DSCBLOCK_ENTIREBUFFER 0x00000001
838#define DSCBSTATUS_CAPTURING 0x00000001
839#define DSCBSTATUS_LOOPING 0x00000002
841#define DSCBSTART_LOOPING 0x00000001
843#define DSBFREQUENCY_MIN 100
844#define DSBFREQUENCY_MAX 100000
845#define DSBFREQUENCY_ORIGINAL 0
847#define DSBPAN_LEFT -10000
848#define DSBPAN_CENTER 0
849#define DSBPAN_RIGHT 10000
851#define DSBVOLUME_MIN -10000
852#define DSBVOLUME_MAX 0
855#define DSBSIZE_MAX 0x0FFFFFFF
857#define DSBPN_OFFSETSTOP 0xFFFFFFFF
[AI] Set wrapper utilizing a custom allocator and comparator.
struct _D3DVECTOR * LPD3DVECTOR
typedef DWORD(FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper
struct _DSBUFFERDESC DSBUFFERDESC
BOOL(CALLBACK * LPDSENUMCALLBACKW)(LPGUID, LPCWSTR, LPCWSTR, LPVOID)
LPDIRECTSOUND3DBUFFER * LPLPDIRECTSOUND3DBUFFER
struct IDirectSoundCapture * LPDIRECTSOUNDCAPTURE
struct IDirectSoundCaptureBuffer * LPDIRECTSOUNDCAPTUREBUFFER
const WAVEFORMATEX * LPCWAVEFORMATEX
struct IDirectSoundBuffer * LPDIRECTSOUNDBUFFER
struct _DSBUFFERDESC * LPDSBUFFERDESC
LPDIRECTSOUNDCAPTUREBUFFER * LPLPDIRECTSOUNDCAPTUREBUFFER
const DSBCAPS * LPCDSBCAPS
const DS3DBUFFER * LPCDS3DBUFFER
struct _DSBPOSITIONNOTIFY DSBPOSITIONNOTIFY
struct _DSCBUFFERDESC * LPDSCBUFFERDESC
HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID)
struct IDirectSound3DBuffer * LPDIRECTSOUND3DBUFFER
HRESULT WINAPI DirectSoundCreate(LPGUID, LPDIRECTSOUND *, LPUNKNOWN)
struct _DSCCAPS * LPDSCCAPS
struct IKsPropertySet * LPKSPROPERTYSET
DECLARE_INTERFACE_(IDirectSound, IUnknown)
struct IDirectSound3DListener * LPDIRECTSOUND3DLISTENER
struct _DSCAPS * LPDSCAPS
const DSCBCAPS * LPCDSCBCAPS
LPDIRECTSOUND3DLISTENER * LPLPDIRECTSOUND3DLISTENER
HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW, LPVOID)
LPDIRECTSOUNDCAPTURE * LPLPDIRECTSOUNDCAPTURE
struct IDirectSound * LPDIRECTSOUND
struct _DS3DBUFFER * LPDS3DBUFFER
struct _DSBPOSITIONNOTIFY * LPDSBPOSITIONNOTIFY
HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID)
const DS3DLISTENER * LPCDS3DLISTENER
struct _DS3DLISTENER * LPDS3DLISTENER
HRESULT WINAPI DirectSoundCaptureCreate(LPGUID, LPDIRECTSOUNDCAPTURE *, LPUNKNOWN)
const DSCCAPS * LPCDSCCAPS
struct IDirectSoundNotify * LPDIRECTSOUNDNOTIFY
BOOL(CALLBACK * LPDSENUMCALLBACKA)(LPGUID, LPCSTR, LPCSTR, LPVOID)
LPDIRECTSOUNDBUFFER * LPLPDIRECTSOUNDBUFFER
struct _DSBCAPS * LPDSBCAPS
struct _DSCBUFFERDESC DSCBUFFERDESC
HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA, LPVOID)
struct _DS3DBUFFER DS3DBUFFER
struct _DSCBCAPS * LPDSCBCAPS
struct _DS3DLISTENER DS3DLISTENER
LPDIRECTSOUNDNOTIFY * LPLPDIRECTSOUNDNOTIFY
const DSBUFFERDESC * LPCDSBUFFERDESC
LPDIRECTSOUND * LPLPDIRECTSOUND
struct _DSCBCAPS DSCBCAPS
const DSCBUFFERDESC * LPCDSCBUFFERDESC
const DSBPOSITIONNOTIFY * LPCDSBPOSITIONNOTIFY
DEFINE_GUID(CLSID_DirectSound, 0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0)
MxResult Start(MxDSAction *p_dsAction)
[AI] Schedules and initiates execution of a script action.
D3DVECTOR vConeOrientation
D3DVALUE flDistanceFactor
DWORD dwUnlockTransferRate
LPWAVEFORMATEX lpwfxFormat
DWORD dwMaxContigFreeHwMemBytes
DWORD dwUnlockTransferRateHwBuffers
DWORD dwMaxHwMixingStreamingBuffers
DWORD dwMaxHw3DStreamingBuffers
DWORD dwMaxSecondarySampleRate
DWORD dwFreeHw3DStreamingBuffers
DWORD dwMaxHw3DStaticBuffers
DWORD dwFreeHw3DStaticBuffers
DWORD dwFreeHwMixingStaticBuffers
DWORD dwFreeHwMixingStreamingBuffers
DWORD dwMinSecondarySampleRate
DWORD dwMaxHwMixingAllBuffers
DWORD dwPlayCpuOverheadSwBuffers
DWORD dwMaxHwMixingStaticBuffers
DWORD dwFreeHwMixingAllBuffers
DWORD dwMaxHw3DAllBuffers
DWORD dwFreeHw3DAllBuffers
LPWAVEFORMATEX lpwfxFormat