| Description | Uses | Classes, Interfaces, Objects and Records | Functions and Procedures | Types | Constants | Variables | 
DS interfaces
| Name | Description | 
|---|---|
packed record AecQualityMetrics_Struct | 
|
packed record AM_MEDIA_TYPE | 
|
packed record DMO_OUTPUT_DATA_BUFFER | 
|
packed record DSBCAPS | 
|
packed record DSBPOSITIONNOTIFY | 
|
packed record DSBUFFERDESC | 
|
packed record DSCAPS | 
|
packed record DSCBCAPS | 
|
packed record DSCBUFFERDESC | 
|
packed record DSCCAPS | 
|
packed record DSCEFFECTDESC | 
|
packed record DSCFXAec | 
|
packed record DSEFFECTDESC | 
|
Interface IDirectSound | 
IDirectSound | 
Interface IDirectSound8 | 
|
Interface IDirectSoundBuffer | 
IDirectSoundBuffer | 
Interface IDirectSoundBuffer8 | 
IDirectSoundBuffer8 | 
Interface IDirectSoundCapture | 
IDirectSoundCapture | 
Interface IDirectSoundCaptureBuffer | 
IDirectSoundCaptureBuffer | 
Interface IDirectSoundCaptureBuffer8 | 
IDirectSoundCaptureBuffer8 | 
Interface IDirectSoundCaptureFXAec | 
|
Interface IDirectSoundFullDuplex | 
IDirectSoundFullDuplex | 
Interface IDirectSoundNotify | 
IDirectSoundNotify | 
Interface IMediaBuffer | 
|
Interface IMediaObject | 
|
Interface IMediaObjectInPlace | 
|
Interface IMMDevice | 
|
Interface IMMDeviceCollection | 
|
Interface IMMDeviceEnumerator | 
|
Interface IMMNotificationClient | 
|
Interface IPropertyStore | 
|
packed record PROPERTYKEY | 
|
Class tMediaBuffer | 
media buffer implementation | 
function DirectSoundCreate8(pcGuidDevice: PGUID; out ppDS8: IDirectSound8; pUnkOuter: IUnknown): HRESULT; stdcall; | 
function DirectSoundFullDuplexCreate8(pcGuidCaptureDevice, pcGuidRenderDevice: PGUID; const pcDSCBufferDesc: TDSCBufferDesc; const pcDSBufferDesc: TDSBufferDesc; hWnd: hWnd; dwLevel: DWORD; out ppDSFD: IDirectSoundFullDuplex8; out ppDSCBuffer8: IDirectSoundCaptureBuffer8; out ppDSBuffer8: IDirectSoundBuffer8; pUnkOuter: IUnknown): HRESULT; stdcall; | 
function unadsFullDuplexCreate(pcGuidCaptureDevice, pcGuidRenderDevice: PGUID; const pcDSCBufferDesc: TDSCBufferDesc; const pcDSBufferDesc: TDSBufferDesc; hWnd: hWnd; dwLevel: DWORD; out ppDSFD: IDirectSoundFullDuplex8; out ppDSCBuffer8: IDirectSoundCaptureBuffer8; out ppDSBuffer8: IDirectSoundBuffer8): HRESULT; | 
function unaDirectSoundCreate(pcGuidDevice: PGUID; out ppDS8: IDirectSound8): HRESULT; | 
function DirectSoundEnumerate(cap: bool; cb: LPDSENUMCALLBACKW; context: pointer): HRESULT; | 
procedure propVariantInit(v: PROPVARIANT); | 
function MoInitMediaType(var pmt: DMO_MEDIA_TYPE; cbFormat: DWORD): HRESULT; | 
function MoFreeMediaType(var pmt: DMO_MEDIA_TYPE): HRESULT; | 
ADAPTIVE_ARRAY_AND_AEC        = 3; | 
ADAPTIVE_ARRAY_ONLY	        = 1; | 
AEC_VAD_DISABLED	                = 0; | 
AEC_VAD_FOR_AGC	                = 2; | 
AEC_VAD_FOR_SILENCE_SUPPRESSION	= 3; | 
AEC_VAD_NORMAL	                = 1; | 
CLSID_CWMAudioAEC: TGUID        = '{745057c7-f353-4f2d-a7ee-58434477730e}'; | 
CLSID_MMDeviceEnumerator: TGUID = '{BCDE0395-E52F-467C-8E3D-C4579291692E}'; | 
c_directSoundDll = 'DSOUND.DLL'; | 
c_dmoDll         = 'MSDMO.DLL'; | 
DEVICE_STATEMASK_ALL     = $0000000f; | 
DEVICE_STATE_ACTIVE      = $00000001; | 
DEVICE_STATE_DISABLED    = $00000002; | 
DEVICE_STATE_NOTPRESENT  = $00000004; | 
DEVICE_STATE_UNPLUGGED   = $00000008; | 
DMO_INPUT_DATA_BUFFERF_SYNCPOINT	= $1; | 
DMO_INPUT_DATA_BUFFERF_TIME	        = $2; | 
DMO_INPUT_DATA_BUFFERF_TIMELENGTH	= $4; | 
DMO_INPUT_STATUSF_ACCEPT_DATA	        = $1; | 
DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE	        = $4; | 
DMO_INPUT_STREAMF_HOLDS_BUFFERS	        = $8; | 
DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER	= $2; | 
DMO_INPUT_STREAMF_WHOLE_SAMPLES	        = $1; | 
DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE	= $1000000; | 
DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT	= $1; | 
DMO_OUTPUT_DATA_BUFFERF_TIME	        = $2; | 
DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH	= $4; | 
DMO_OUTPUT_STREAMF_DISCARDABLE	        = $8; | 
DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE	        = $4; | 
DMO_OUTPUT_STREAMF_OPTIONAL	                = $10; | 
DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER	= $2; | 
DMO_OUTPUT_STREAMF_WHOLE_SAMPLES	        = $1; | 
DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER	= $1; | 
DMO_SET_TYPEF_CLEAR	        = $2; | 
DMO_SET_TYPEF_TEST_ONLY	= $1; | 
DS3DALG_DEFAULT: TGUID = '{00000000-0000-0000-0000-000000000000}'; | 
DS3DALG_HRTF_FULL: TGUID = '{c2413340-1c1b-11d2-94f5-00c04fc28aca}'; | 
DS3DALG_HRTF_LIGHT: TGUID = '{c2413342-1c1b-11d2-94f5-00c04fc28aca}'; | 
DS3DALG_NO_VIRTUALIZATION: TGUID = '{c241333f-1c1b-11d2-94f5-00c04fc28aca}'; | 
DSBCAPS_CTRL3D              = $00000010; | 
DSBCAPS_CTRLFREQUENCY       = $00000020; | 
DSBCAPS_CTRLFX              = $00000200; | 
DSBCAPS_CTRLPAN             = $00000040; | 
DSBCAPS_CTRLPOSITIONNOTIFY  = $00000100; | 
DSBCAPS_CTRLVOLUME          = $00000080; | 
DSBCAPS_GETCURRENTPOSITION2 = $00010000; | 
DSBCAPS_GLOBALFOCUS         = $00008000; | 
DSBCAPS_LOCDEFER            = $00040000; | 
DSBCAPS_LOCHARDWARE         = $00000004; | 
DSBCAPS_LOCSOFTWARE         = $00000008; | 
DSBCAPS_MUTE3DATMAXDISTANCE = $00020000; | 
DSBCAPS_PRIMARYBUFFER       = $00000001; | 
DSBCAPS_STATIC              = $00000002; | 
DSBCAPS_STICKYFOCUS         = $00004000; | 
DSBLOCK_ENTIREBUFFER        = $00000002; | 
DSBLOCK_FROMWRITECURSOR     = $00000001; | 
DSBPLAY_LOCHARDWARE         = $00000002; | 
DSBPLAY_LOCSOFTWARE         = $00000004; | 
DSBPLAY_LOOPING             = $00000001; | 
DSBPLAY_TERMINATEBY_DISTANCE    = $000000010; | 
DSBPLAY_TERMINATEBY_PRIORITY    = $000000020; | 
DSBPLAY_TERMINATEBY_TIME    = $00000008; | 
DSBPN_OFFSETSTOP            = $FFFFFFFF; | 
DSCBCAPS_CTRLFX             = $00000200; | 
DSCBCAPS_WAVEMAPPED         = $80000000; | 
DSCBLOCK_ENTIREBUFFER       = $00000001; | 
DSCBSTART_LOOPING           = $00000001; | 
DSCBSTATUS_CAPTURING        = $00000001; | 
DSCBSTATUS_LOOPING          = $00000002; | 
DSCFXR_LOCHARDWARE  = $00000010; | 
DSCFXR_LOCSOFTWARE  = $00000020; | 
DSCFX_AEC_MODE_FULL_DUPLEX                      = $2; | 
DSCFX_AEC_MODE_HALF_DUPLEX                      = $1; | 
DSCFX_AEC_MODE_PASS_THROUGH                     = $0; | 
DSCFX_AEC_STATUS_CURRENTLY_CONVERGED            = $8; | 
DSCFX_AEC_STATUS_HISTORY_CONTINUOUSLY_CONVERGED = $1; | 
DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED    = $2; | 
DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED          = $0; | 
DSCFX_LOCHARDWARE   = $00000001; | 
DSCFX_LOCSOFTWARE   = $00000002; | 
DSDEVID_DefaultVoiceCapture: TGUID = '{def00003-9c6d-47ed-aaf1-4dda8f2b5c03}'; | 
DSDEVID_DefaultVoicePlayback: TGUID = '{def00002-9c6d-47ed-aaf1-4dda8f2b5c03}'; | 
DSERR_BUFFERLOST = integer($88780096); | 
DSSCL_EXCLUSIVE             = $00000003; | 
DSSCL_NORMAL                = $00000001; | 
DSSCL_PRIORITY              = $00000002; | 
DSSCL_WRITEPRIMARY          = $00000004; | 
DS_CERTIFIED                = $00000000; | 
DS_UNCERTIFIED              = $00000001; | 
FORMAT_WaveFormatEx   : TGUID = (D1:$05589F81;D2:$C356;D3:$11CE;D4:($BF,$01,$00,$AA,$00,$55,$59,$5A)); | 
GUID_DSCFX_CLASS_AEC: TGUID = '{BF963D80-C559-11D0-8A2B-00A0C9255AC1}'; | 
GUID_DSCFX_CLASS_NS: TGUID = '{e07f903f-62fd-4e60-8cdd-dea7236665b5}'; | 
GUID_DSCFX_MS_AEC: TGUID = '{cdebb919-379a-488a-8765-f53cfd36de40}'; | 
GUID_DSCFX_MS_NS: TGUID = '{11c5c73b-66e9-4ba1-a0ba-e814c6eed92d}'; | 
GUID_DSCFX_SYSTEM_AEC: TGUID = '{1c22c56d-9879-4f5b-a389-27996ddc2810}'; | 
GUID_DSCFX_SYSTEM_NS: TGUID = '{5ab0882e-7274-4516-877d-4eee99ba4fd0}'; | 
MEDIATYPE_Audio       : TGUID = (D1:$73647561;D2:$0000;D3:$0010;D4:($80,$00,$00,$AA,$00,$38,$9B,$71)); | 
MFPKEY_WMAAECMA_DEVICEPAIR_GUID       : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 15); | 
MFPKEY_WMAAECMA_DEVICE_INDEXES        : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 02); | 
MFPKEY_WMAAECMA_DMO_SOURCE_MODE       : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 01); | 
MFPKEY_WMAAECMA_FEATR_AES             : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 08); | 
MFPKEY_WMAAECMA_FEATR_AGC             : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 07); | 
MFPKEY_WMAAECMA_FEATR_CENTER_CLIP     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 10); | 
MFPKEY_WMAAECMA_FEATR_ECHO_LENGTH     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 05); | 
MFPKEY_WMAAECMA_FEATR_FRAME_SIZE      : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 04); | 
MFPKEY_WMAAECMA_FEATR_MICARR_BEAM     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 17); | 
MFPKEY_WMAAECMA_FEATR_MICARR_MODE     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 16); | 
MFPKEY_WMAAECMA_FEATR_MICARR_PREPROC  : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 18); | 
MFPKEY_WMAAECMA_FEATR_NOISE_FILL      : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 11); | 
MFPKEY_WMAAECMA_FEATR_NS              : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 06); | 
MFPKEY_WMAAECMA_FEATR_VAD             : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 09); | 
MFPKEY_WMAAECMA_FEATURE_MODE          : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 03); | 
MFPKEY_WMAAECMA_MICARRAY_DESCPTR      : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 14); | 
MFPKEY_WMAAECMA_MIC_GAIN_BOUNDER      : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 19); | 
MFPKEY_WMAAECMA_QUALITY_METRICS       : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 13); | 
MFPKEY_WMAAECMA_RETRIEVE_TS_STATS     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 12); | 
MFPKEY_WMAAECMA_SYSTEM_MODE           : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 00); | 
MODE_NOT_SET	                = 6; | 
OPTIBEAM_ARRAY_AND_AEC        = 4; | 
OPTIBEAM_ARRAY_ONLY	        = 2; | 
PKEY_AudioEndpoint_GUID               : PROPERTYKEY = ( fmtid: '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}'; pid: 04); | 
PKEY_Device_FriendlyName              : PROPERTYKEY = ( fmtid: '{a45c254e-df1c-4efd-8020-67d146a850e0}'; pid: 14); | 
SINGLE_CHANNEL_AEC	        = 0; | 
SINGLE_CHANNEL_NSAGC	        = 5; | 
function DirectSoundCreate8(pcGuidDevice: PGUID; out ppDS8: IDirectSound8; pUnkOuter: IUnknown): HRESULT; stdcall; | 
function DirectSoundFullDuplexCreate8(pcGuidCaptureDevice, pcGuidRenderDevice: PGUID; const pcDSCBufferDesc: TDSCBufferDesc; const pcDSBufferDesc: TDSBufferDesc; hWnd: hWnd; dwLevel: DWORD; out ppDSFD: IDirectSoundFullDuplex8; out ppDSCBuffer8: IDirectSoundCaptureBuffer8; out ppDSBuffer8: IDirectSoundBuffer8; pUnkOuter: IUnknown): HRESULT; stdcall; | 
function unadsFullDuplexCreate(pcGuidCaptureDevice, pcGuidRenderDevice: PGUID; const pcDSCBufferDesc: TDSCBufferDesc; const pcDSBufferDesc: TDSBufferDesc; hWnd: hWnd; dwLevel: DWORD; out ppDSFD: IDirectSoundFullDuplex8; out ppDSCBuffer8: IDirectSoundCaptureBuffer8; out ppDSBuffer8: IDirectSoundBuffer8): HRESULT; | 
| 
 – –  | 
function unaDirectSoundCreate(pcGuidDevice: PGUID; out ppDS8: IDirectSound8): HRESULT; | 
| 
 – –  | 
function DirectSoundEnumerate(cap: bool; cb: LPDSENUMCALLBACKW; context: pointer): HRESULT; | 
| 
 – –  | 
procedure propVariantInit(v: PROPVARIANT); | 
| 
 – –  | 
function MoInitMediaType(var pmt: DMO_MEDIA_TYPE; cbFormat: DWORD): HRESULT; | 
| 
 – –  | 
function MoFreeMediaType(var pmt: DMO_MEDIA_TYPE): HRESULT; | 
INT_PTR = integer; | 
UINT_PTR = cardinal; | 
LONG_PTR = Longint; | 
ULONG_PTR = Longword; | 
DWORD_PTR = ULONG_PTR; | 
TDSCaps = DSCAPS; | 
PDSCaps = ˆTDSCaps; | 
TDSBufferDesc = DSBUFFERDESC; | 
PDSBufferDesc = ˆTDSBufferDesc; | 
TDSCEffectDesc = DSCEFFECTDESC; | 
PDSCEffectDesc = ˆTDSCEffectDesc; | 
TDSCBufferDesc = DSCBUFFERDESC; | 
PDSCBufferDesc = ˆTDSCBufferDesc; | 
TDSBcaps = DSBCAPS; | 
PDSBcaps = ˆTDSBcaps; | 
TDSCcaps = DSCCAPS; | 
PDSCcaps = ˆTDSCcaps; | 
TDSCBCaps = DSCBCAPS; | 
PDSCBCaps = ˆTDSCBCaps; | 
TDSEffectDesc = DSEFFECTDESC; | 
PDSEffectDesc = ˆTDSEffectDesc; | 
TDSBPositionNotify = DSBPOSITIONNOTIFY; | 
PDSBPositionNotify = ˆTDSBPositionNotify; | 
TDSCFXAec = DSCFXAec; | 
PDSCFXAec = ˆTDSCFXAec; | 
pAecQualityMetrics_Struct = ˆAecQualityMetrics_Struct; | 
IID_IDirectSound = IDirectSound; | 
IID_IDirectSound8 = IDirectSound8; | 
IID_IDirectSoundCapture = IDirectSoundCapture; | 
IID_IDirectSoundBuffer = IDirectSoundBuffer; | 
IID_IDirectSoundCaptureBuffer = IDirectSoundCaptureBuffer; | 
IID_IDirectSoundCaptureBuffer8 = IDirectSoundCaptureBuffer8; | 
IID_IDirectSoundBuffer8 = IDirectSoundBuffer8; | 
IID_IDirectSoundFullDuplex	= IDirectSoundFullDuplex; | 
IDirectSoundFullDuplex8       = IDirectSoundFullDuplex; | 
IID_IDirectSoundNotify	= IDirectSoundNotify; | 
IID_IDirectSoundNotify8       = IID_IDirectSoundNotify; | 
IDirectSoundNotify8           = IDirectSoundNotify; | 
IID_IDirectSoundCaptureFXAec	= IDirectSoundCaptureFXAec; | 
IID_IDirectSoundCaptureFXAec8	= IID_IDirectSoundCaptureFXAec; | 
IDirectSoundCaptureFXAec8	= IDirectSoundCaptureFXAec; | 
REFERENCE_TIME = LONGLONG; | 
| 
 DMOs  | 
pAM_MEDIA_TYPE = ˆAM_MEDIA_TYPE; | 
pDMO_MEDIA_TYPE = ˆDMO_MEDIA_TYPE; | 
DMO_MEDIA_TYPE = AM_MEDIA_TYPE; | 
IID_IMediaBuffer = IMediaBuffer; | 
pDMO_OUTPUT_DATA_BUFFER = ˆDMO_OUTPUT_DATA_BUFFER; | 
IID_IMediaObject = IMediaObject; | 
IID_IMediaObjectInPlace = IMediaObjectInPlace; | 
REFPROPERTYKEY = ˆPROPERTYKEY; | 
REFPROPVARIANT = ˆPROPVARIANT; | 
IID_IPropertyStore = IPropertyStore; | 
REFIID = PGUID; | 
IID_IMMDevice = IMMDevice; | 
IID_IMMDeviceCollection = IMMDeviceCollection; | 
EDataFlow = (...); | 
 Values
  | 
ERole = (...); | 
 Values
  | 
IID_IMMNotificationClient = IMMNotificationClient; | 
IID_IMMDeviceEnumerator = IMMDeviceEnumerator; | 
LPDSENUMCALLBACKW = function(p1: PGUID; p2: LPCWSTR; p3: LPCWSTR; p4: pointer): bool; stdcall; | 
| 
 – DS routines –  | 
proc_DirectSoundCreate8 = function(pcGuidDevice: PGUID; out ppDS8: IDirectSound8; pUnkOuter: IUnknown): HResult; stdcall; | 
| 
 – –  | 
proc_DirectSoundFullDuplexCreate8 = function(pcGuidCaptureDevice, pcGuidRenderDevice: PGUID; const pcDSCBufferDesc: TDSCBufferDesc; const pcDSBufferDesc: TDSBufferDesc; hWnd: hWnd; dwLevel: DWORD; out ppDSFD: IDirectSoundFullDuplex8; out ppDSCBuffer8: IDirectSoundCaptureBuffer8; out ppDSBuffer8: IDirectSoundBuffer8; pUnkOuter: IUnknown): HRESULT; stdcall; | 
| 
 – –  | 
proc_DirectSoundEnumerateW = function (pDSEnumCallback: LPDSENUMCALLBACKW; pContext: pointer): HRESULT; stdcall; | 
proc_DirectSoundCaptureEnumerateW = function(pDSEnumCallback: LPDSENUMCALLBACKW; pContext: pointer): HRESULT; stdcall; | 
proc_MoInitMediaType = function(var pmt: DMO_MEDIA_TYPE; cbFormat: DWORD): HRESULT; stdcall; | 
proc_MoFreeMediaType = function(var pmt: DMO_MEDIA_TYPE): HRESULT; stdcall; | 
ADAPTIVE_ARRAY_AND_AEC        = 3; | 
ADAPTIVE_ARRAY_ONLY	        = 1; | 
AEC_VAD_DISABLED	                = 0; | 
| 
 AEC_VAD_MODE  | 
AEC_VAD_FOR_AGC	                = 2; | 
AEC_VAD_FOR_SILENCE_SUPPRESSION	= 3; | 
AEC_VAD_NORMAL	                = 1; | 
CLSID_CWMAudioAEC: TGUID        = '{745057c7-f353-4f2d-a7ee-58434477730e}'; | 
| 
 Vista/Win7 specific  | 
CLSID_MMDeviceEnumerator: TGUID = '{BCDE0395-E52F-467C-8E3D-C4579291692E}'; | 
c_directSoundDll = 'DSOUND.DLL'; | 
c_dmoDll         = 'MSDMO.DLL'; | 
DEVICE_STATEMASK_ALL     = $0000000f; | 
DEVICE_STATE_ACTIVE      = $00000001; | 
DEVICE_STATE_DISABLED    = $00000002; | 
DEVICE_STATE_NOTPRESENT  = $00000004; | 
DEVICE_STATE_UNPLUGGED   = $00000008; | 
DMO_INPUT_DATA_BUFFERF_SYNCPOINT	= $1; | 
| 
 enum _DMO_INPUT_DATA_BUFFER_FLAGS  | 
DMO_INPUT_DATA_BUFFERF_TIME	        = $2; | 
DMO_INPUT_DATA_BUFFERF_TIMELENGTH	= $4; | 
DMO_INPUT_STATUSF_ACCEPT_DATA	        = $1; | 
| 
 enum _DMO_INPUT_STATUS_FLAGS  | 
DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE	        = $4; | 
DMO_INPUT_STREAMF_HOLDS_BUFFERS	        = $8; | 
DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER	= $2; | 
DMO_INPUT_STREAMF_WHOLE_SAMPLES	        = $1; | 
| 
 enum _DMO_INPUT_STREAM_INFO_FLAGS  | 
DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE	= $1000000; | 
DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT	= $1; | 
| 
 enum _DMO_OUTPUT_DATA_BUFFER_FLAGS  | 
DMO_OUTPUT_DATA_BUFFERF_TIME	        = $2; | 
DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH	= $4; | 
DMO_OUTPUT_STREAMF_DISCARDABLE	        = $8; | 
DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE	        = $4; | 
DMO_OUTPUT_STREAMF_OPTIONAL	                = $10; | 
DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER	= $2; | 
DMO_OUTPUT_STREAMF_WHOLE_SAMPLES	        = $1; | 
| 
 enum _DMO_OUTPUT_STREAM_INFO_FLAGS  | 
DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER	= $1; | 
| 
 enum _DMO_PROCESS_OUTPUT_FLAGS  | 
DMO_SET_TYPEF_CLEAR	        = $2; | 
DMO_SET_TYPEF_TEST_ONLY	= $1; | 
| 
 enum _DMO_SET_TYPE_FLAGS  | 
DS3DALG_DEFAULT: TGUID = '{00000000-0000-0000-0000-000000000000}'; | 
| 
 DirectSound3D Algorithms Default DirectSound3D algorithm  | 
DS3DALG_HRTF_FULL: TGUID = '{c2413340-1c1b-11d2-94f5-00c04fc28aca}'; | 
| 
 High-quality HRTF algorithm  | 
DS3DALG_HRTF_LIGHT: TGUID = '{c2413342-1c1b-11d2-94f5-00c04fc28aca}'; | 
| 
 Lower-quality HRTF algorithm  | 
DS3DALG_NO_VIRTUALIZATION: TGUID = '{c241333f-1c1b-11d2-94f5-00c04fc28aca}'; | 
| 
 No virtualization (Pan3D)  | 
DSBCAPS_CTRL3D              = $00000010; | 
DSBCAPS_CTRLFREQUENCY       = $00000020; | 
DSBCAPS_CTRLFX              = $00000200; | 
DSBCAPS_CTRLPAN             = $00000040; | 
DSBCAPS_CTRLPOSITIONNOTIFY  = $00000100; | 
DSBCAPS_CTRLVOLUME          = $00000080; | 
DSBCAPS_GETCURRENTPOSITION2 = $00010000; | 
DSBCAPS_GLOBALFOCUS         = $00008000; | 
DSBCAPS_LOCDEFER            = $00040000; | 
DSBCAPS_LOCHARDWARE         = $00000004; | 
DSBCAPS_LOCSOFTWARE         = $00000008; | 
DSBCAPS_MUTE3DATMAXDISTANCE = $00020000; | 
DSBCAPS_PRIMARYBUFFER       = $00000001; | 
DSBCAPS_STATIC              = $00000002; | 
DSBCAPS_STICKYFOCUS         = $00004000; | 
DSBLOCK_ENTIREBUFFER        = $00000002; | 
DSBLOCK_FROMWRITECURSOR     = $00000001; | 
DSBPLAY_LOCHARDWARE         = $00000002; | 
DSBPLAY_LOCSOFTWARE         = $00000004; | 
DSBPLAY_LOOPING             = $00000001; | 
DSBPLAY_TERMINATEBY_DISTANCE    = $000000010; | 
DSBPLAY_TERMINATEBY_PRIORITY    = $000000020; | 
DSBPLAY_TERMINATEBY_TIME    = $00000008; | 
DSBPN_OFFSETSTOP            = $FFFFFFFF; | 
| 
 BPN  | 
DSCBCAPS_CTRLFX             = $00000200; | 
DSCBCAPS_WAVEMAPPED         = $80000000; | 
DSCBLOCK_ENTIREBUFFER       = $00000001; | 
| 
 lock  | 
DSCBSTART_LOOPING           = $00000001; | 
| 
 capture  | 
DSCBSTATUS_CAPTURING        = $00000001; | 
| 
 status  | 
DSCBSTATUS_LOOPING          = $00000002; | 
DSCFXR_LOCHARDWARE  = $00000010; | 
DSCFXR_LOCSOFTWARE  = $00000020; | 
DSCFX_AEC_MODE_FULL_DUPLEX                      = $2; | 
DSCFX_AEC_MODE_HALF_DUPLEX                      = $1; | 
DSCFX_AEC_MODE_PASS_THROUGH                     = $0; | 
| 
 These match the AEC_MODE_* constants in the DDK's ksmedia.h file  | 
DSCFX_AEC_STATUS_CURRENTLY_CONVERGED            = $8; | 
DSCFX_AEC_STATUS_HISTORY_CONTINUOUSLY_CONVERGED = $1; | 
DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED    = $2; | 
DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED          = $0; | 
| 
 These match the AEC_STATUS_* constants in ksmedia.h  | 
DSCFX_LOCHARDWARE   = $00000001; | 
DSCFX_LOCSOFTWARE   = $00000002; | 
DSDEVID_DefaultVoiceCapture: TGUID = '{def00003-9c6d-47ed-aaf1-4dda8f2b5c03}'; | 
| 
 DirectSound default device for voice capture  | 
DSDEVID_DefaultVoicePlayback: TGUID = '{def00002-9c6d-47ed-aaf1-4dda8f2b5c03}'; | 
| 
 DirectSound default device for voice playback  | 
DSERR_BUFFERLOST = integer($88780096); | 
DSSCL_EXCLUSIVE             = $00000003; | 
DSSCL_NORMAL                = $00000001; | 
DSSCL_PRIORITY              = $00000002; | 
DSSCL_WRITEPRIMARY          = $00000004; | 
DS_CERTIFIED                = $00000000; | 
| 
 cert  | 
DS_UNCERTIFIED              = $00000001; | 
FORMAT_WaveFormatEx   : TGUID = (D1:$05589F81;D2:$C356;D3:$11CE;D4:($BF,$01,$00,$AA,$00,$55,$59,$5A)); | 
GUID_DSCFX_CLASS_AEC: TGUID = '{BF963D80-C559-11D0-8A2B-00A0C9255AC1}'; | 
| 
 Acoustic Echo Canceller Matches KSNODETYPE_ACOUSTIC_ECHO_CANCEL in ksmedia.h  | 
GUID_DSCFX_CLASS_NS: TGUID = '{e07f903f-62fd-4e60-8cdd-dea7236665b5}'; | 
| 
 Noise Supression Matches KSNODETYPE_NOISE_SUPPRESS in post Windows ME DDK's ksmedia.h  | 
GUID_DSCFX_MS_AEC: TGUID = '{cdebb919-379a-488a-8765-f53cfd36de40}'; | 
| 
 Microsoft AEC  | 
GUID_DSCFX_MS_NS: TGUID = '{11c5c73b-66e9-4ba1-a0ba-e814c6eed92d}'; | 
| 
 Microsoft Noise Suppresion  | 
GUID_DSCFX_SYSTEM_AEC: TGUID = '{1c22c56d-9879-4f5b-a389-27996ddc2810}'; | 
| 
 System AEC  | 
GUID_DSCFX_SYSTEM_NS: TGUID = '{5ab0882e-7274-4516-877d-4eee99ba4fd0}'; | 
| 
 System Noise Suppresion  | 
MEDIATYPE_Audio       : TGUID = (D1:$73647561;D2:$0000;D3:$0010;D4:($80,$00,$00,$AA,$00,$38,$9B,$71)); | 
MFPKEY_WMAAECMA_DEVICEPAIR_GUID       : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 15); | 
MFPKEY_WMAAECMA_DEVICE_INDEXES        : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 02); | 
MFPKEY_WMAAECMA_DMO_SOURCE_MODE       : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 01); | 
MFPKEY_WMAAECMA_FEATR_AES             : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 08); | 
MFPKEY_WMAAECMA_FEATR_AGC             : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 07); | 
MFPKEY_WMAAECMA_FEATR_CENTER_CLIP     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 10); | 
MFPKEY_WMAAECMA_FEATR_ECHO_LENGTH     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 05); | 
MFPKEY_WMAAECMA_FEATR_FRAME_SIZE      : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 04); | 
MFPKEY_WMAAECMA_FEATR_MICARR_BEAM     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 17); | 
MFPKEY_WMAAECMA_FEATR_MICARR_MODE     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 16); | 
MFPKEY_WMAAECMA_FEATR_MICARR_PREPROC  : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 18); | 
MFPKEY_WMAAECMA_FEATR_NOISE_FILL      : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 11); | 
MFPKEY_WMAAECMA_FEATR_NS              : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 06); | 
MFPKEY_WMAAECMA_FEATR_VAD             : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 09); | 
MFPKEY_WMAAECMA_FEATURE_MODE          : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 03); | 
MFPKEY_WMAAECMA_MICARRAY_DESCPTR      : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 14); | 
MFPKEY_WMAAECMA_MIC_GAIN_BOUNDER      : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 19); | 
MFPKEY_WMAAECMA_QUALITY_METRICS       : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 13); | 
MFPKEY_WMAAECMA_RETRIEVE_TS_STATS     : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 12); | 
MFPKEY_WMAAECMA_SYSTEM_MODE           : PROPERTYKEY = ( fmtid: '{6f52c567-0360-4bd2-9617-ccbf1421c939}'; pid: PID_FIRST_USABLE + 00); | 
MODE_NOT_SET	                = 6; | 
OPTIBEAM_ARRAY_AND_AEC        = 4; | 
OPTIBEAM_ARRAY_ONLY	        = 2; | 
PKEY_AudioEndpoint_GUID               : PROPERTYKEY = ( fmtid: '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}'; pid: 04); | 
| 
 DEVPROP_TYPE_STRING  | 
PKEY_Device_FriendlyName              : PROPERTYKEY = ( fmtid: '{a45c254e-df1c-4efd-8020-67d146a850e0}'; pid: 14); | 
SINGLE_CHANNEL_AEC	        = 0; | 
| 
 AEC_SYSTEM_MODE enum:  | 
SINGLE_CHANNEL_NSAGC	        = 5; | 
(c) 2012 Lake of Soft