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;
568 STDMETHOD(Start) (THIS_
DWORD) 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
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
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 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 _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
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
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
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
DWORD dwOffset
Definition: dsound.h:169
HANDLE hEventNotify
Definition: dsound.h:170
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
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
DWORD dwFlags
Definition: dsound.h:160
DWORD dwBufferBytes
Definition: dsound.h:161
DWORD dwReserved
Definition: dsound.h:162
DWORD dwSize
Definition: dsound.h:159
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
DWORD dwChannels
Definition: dsound.h:141
DWORD dwSize
Definition: dsound.h:138
DWORD dwFormats
Definition: dsound.h:140
DWORD dwFlags
Definition: dsound.h:139