// H to Pas Converter Ver.0.6.0.7
//     Date : 97/10/04
//   Source : dsound.h
//

//DirectX5 include file
//
//   Translated by kuroda Dycoon
//
//   1998/4/4


unit dsound;

//{$P+}

interface

uses Windows, Ole2, d3dtypes,mmsystem,SysUtils;

{==========================================================================;
 *
 *  Copyright (C) 1995,1996 Microsoft Corporation.  All Rights Reserved.
 *
 *  File:       dsound.h
 *  Content:    DirectSound include file
 *
 *************************************************************************}

//{$IFNDEF __DSOUND_INCLUDED__}
//{$DEFINE __DSOUND_INCLUDED__}

// Error :  #include <d3dtypes.h>

//{$DEFINE COM_NO_WINDOWS_H}
// Error :  #include <objbase.h>

const
  _FACDS	= $878;
// Error :  #define MAKE_DSHRESULT ( code ) MAKE_HRESULT ( 1 , _FACDS , code )

//{$IFDEF __cplusplus}
// Error : extern "C" {
//{$ENDIF}// __cplusplus

// Direct Sound Component GUID {47D4D946-62E8-11cf-93BC-444553540000}
  CLSID_DirectSound: TGUID = (
    D1:$47d4d946;D2:$62e8;D3:$11cf;D4:($93,$bc,$44,$45,$53,$54,$0,$0));

// DirectSound Capture Component GUID {B0210780-89CD-11d0-AF08-00A0C925CD16}
  CLSID_DirectSoundCapture: TGUID = (
    D1:$b0210780;D2:$89cd;D3:$11d0;D4:($af,$8,$0,$a0,$c9,$25,$cd,$16));
  IID_IDirectSoundBuffer: TGUID = (
    D1:$279AFA85;D2:$4981;D3:$11CE;D4:($A5,$21,$00,$20,$AF,$0B,$E5,$60));
  IID_IDirectSound: TGUID = (
    D1:$279AFA83;D2:$4981;D3:$11CE;D4:($A5,$21,$00,$20,$AF,$0B,$E5,$60));
  IID_IDirectSound3DListener: TGUID = (
    D1:$279AFA84;D2:$4981;D3:$11CE;D4:($A5,$21,$00,$20,$AF,$0B,$E5,$60));
  IID_IDirectSound3DBuffer: TGUID = (
    D1:$279AFA86;D2:$4981;D3:$11CE;D4:($A5,$21,$00,$20,$AF,$0B,$E5,$60));
  IID_IDirectSoundCapture: TGUID = (
    D1:$b0210781;D2:$89cd;D3:$11d0;D4:($af,$8,$0,$a0,$c9,$25,$cd,$16));
  IID_IDirectSoundCaptureBuffer: TGUID = (
    D1:$b0210782;D2:$89cd;D3:$11d0;D4:($af,$8,$0,$a0,$c9,$25,$cd,$16));
  IID_IDirectSoundNotify: TGUID = (
    D1:$b0210783;D2:$89cd;D3:$11d0;D4:($af,$8,$0,$a0,$c9,$25,$cd,$16));

  KSPROPERTY_SUPPORT_GET	= $00000001;
  KSPROPERTY_SUPPORT_SET	= $00000002;

  IID_IKsPropertySet: TGUID = (
    D1:$31efac30;D2:$515c;D3:$11d0;D4:($a9,$aa,$00,$aa,$00,$61,$be,$93));
//
// Structures
// 

//{$IFDEF __cplusplus}
// 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined
type
  IDirectSound = class;
  IDirectSoundBuffer = class;
  IDirectSound3DListener = class;
  IDirectSound3DBuffer = class;
  IDirectSoundCapture = class;
  IDirectSoundCaptureBuffer = class;
  IDirectSoundNotify = class;
//{$ENDIF}// __cplusplus

  LPDIRECTSOUND	= IDirectSound;
  LPDIRECTSOUNDBUFFER	= IDirectSoundBuffer;
  LPDIRECTSOUND3DLISTENER	= IDirectSound3DListener;
  LPDIRECTSOUND3DBUFFER	= IDirectSound3DBuffer;
  LPDIRECTSOUNDCAPTURE	= IDirectSoundCapture;
  LPDIRECTSOUNDCAPTUREBUFFER	= IDirectSoundCaptureBuffer;
  LPDIRECTSOUNDNOTIFY	= IDirectSoundNotify;

  LPWAVEFORMATEX= ^TWAVEFORMATEX;


  DSCAPS = record
	dwSize	: DWORD;
	dwFlags	: DWORD;
	dwMinSecondarySampleRate	: DWORD;
	dwMaxSecondarySampleRate	: DWORD;
	dwPrimaryBuffers	: DWORD;
	dwMaxHwMixingAllBuffers	: DWORD;
	dwMaxHwMixingStaticBuffers	: DWORD;
	dwMaxHwMixingStreamingBuffers	: DWORD;
	dwFreeHwMixingAllBuffers	: DWORD;
	dwFreeHwMixingStaticBuffers	: DWORD;
	dwFreeHwMixingStreamingBuffers	: DWORD;
	dwMaxHw3DAllBuffers	: DWORD;
	dwMaxHw3DStaticBuffers	: DWORD;
	dwMaxHw3DStreamingBuffers	: DWORD;
	dwFreeHw3DAllBuffers	: DWORD;
	dwFreeHw3DStaticBuffers	: DWORD;
	dwFreeHw3DStreamingBuffers	: DWORD;
	dwTotalHwMemBytes	: DWORD;
	dwFreeHwMemBytes	: DWORD;
	dwMaxContigFreeHwMemBytes	: DWORD;
	dwUnlockTransferRateHwBuffers	: DWORD;
	dwPlayCpuOverheadSwBuffers	: DWORD;
	dwReserved1	: DWORD;
	dwReserved2	: DWORD;
  end;
  LPDSCAPS	= ^DSCAPS;

  LPCDSCAPS	= ^DSCAPS;

  DSBCAPS = record
	dwSize	: DWORD;
	dwFlags	: DWORD;
	dwBufferBytes	: DWORD;
	dwUnlockTransferRate	: DWORD;
	dwPlayCpuOverhead	: DWORD;
  end;
  LPDSBCAPS	= ^DSBCAPS;

  LPCDSBCAPS	= ^DSBCAPS;

  DSBUFFERDESC = record
	dwSize	: DWORD;
	dwFlags	: DWORD;
	dwBufferBytes	: DWORD;
	dwReserved	: DWORD;
	lpwfxFormat	: LPWAVEFORMATEX;
  end;
  LPDSBUFFERDESC	= ^DSBUFFERDESC;

  LPCDSBUFFERDESC	= ^DSBUFFERDESC;

  DS3DBUFFER = record
	dwSize	: DWORD;
	vPosition	: D3DVECTOR;
	vVelocity	: D3DVECTOR;
	dwInsideConeAngle	: DWORD;
	dwOutsideConeAngle	: DWORD;
	vConeOrientation	: D3DVECTOR;
	lConeOutsideVolume	: LongInt;
	flMinDistance	: D3DVALUE;
	flMaxDistance	: D3DVALUE;
	dwMode	: DWORD;
  end;
  LPDS3DBUFFER	= ^DS3DBUFFER;

  LPCDS3DBUFFER	= ^DS3DBUFFER;

  DS3DLISTENER = record
	dwSize	: DWORD;
	vPosition	: D3DVECTOR;
	vVelocity	: D3DVECTOR;
	vOrientFront	: D3DVECTOR;
	vOrientTop	: D3DVECTOR;
	flDistanceFactor	: D3DVALUE;
	flRolloffFactor	: D3DVALUE;
	flDopplerFactor	: D3DVALUE;
  end;
  LPDS3DLISTENER	= ^DS3DLISTENER;

  LPCDS3DLISTENER	= ^DS3DLISTENER;

  DSCCAPS = record
	dwSize	: DWORD;
	dwFlags	: DWORD;
	dwFormats	: DWORD;
	dwChannels	: DWORD;
  end;
  LPDSCCAPS	= ^DSCCAPS;

  LPCDSCCAPS	= ^DSCCAPS;

  DSCBUFFERDESC = record
	dwSize	: DWORD;
	dwFlags	: DWORD;
	dwBufferBytes	: DWORD;
	dwReserved	: DWORD;
	lpwfxFormat	: LPWAVEFORMATEX;
  end;
  LPDSCBUFFERDESC	= ^DSCBUFFERDESC;

  LPCDSCBUFFERDESC	= ^DSCBUFFERDESC;

  DSCBCAPS = record
	dwSize	: DWORD;
	dwFlags	: DWORD;
	dwBufferBytes	: DWORD;
	dwReserved	: DWORD;
  end;
  LPDSCBCAPS	= ^DSCBCAPS;

  LPCDSCBCAPS	= ^DSCBCAPS;

  DSBPOSITIONNOTIFY = record
	dwOffset	: DWORD;
	hEventNotify	: THANDLE;
  end;
  LPDSBPOSITIONNOTIFY	= ^DSBPOSITIONNOTIFY;

  LPCDSBPOSITIONNOTIFY	= ^DSBPOSITIONNOTIFY;

//
// Compatibility typedefs
//

  LPLPDIRECTSOUND	= ^LPDIRECTSOUND;
  LPLPDIRECTSOUNDBUFFER	= ^LPDIRECTSOUNDBUFFER;
  LPLPDIRECTSOUND3DLISTENER	= ^LPDIRECTSOUND3DLISTENER;
  LPLPDIRECTSOUND3DBUFFER	= ^LPDIRECTSOUND3DBUFFER;
  LPLPDIRECTSOUNDCAPTURE	= ^LPDIRECTSOUNDCAPTURE;
  LPLPDIRECTSOUNDCAPTUREBUFFER	= ^LPDIRECTSOUNDCAPTUREBUFFER;
  LPLPDIRECTSOUNDNOTIFY	= ^LPDIRECTSOUNDNOTIFY;
  LPLPVOID	= ^Pointer;
  LPCWAVEFORMATEX	= ^TWAVEFORMATEX;

//
// DirectSound API
//

//  BOOL =   function (var LPDSENUMCALLBACKW: CALLBACK): Integer;
//  BOOL =   function (var LPDSENUMCALLBACKA: CALLBACK): Integer;



//  function DirectSoundCreate ( lpGuid: PGUID ; var ppDS: IDirectSound ;
//    pUnkOuter: IUnknown ): HRESULT ; stdcall ;
//function DirectSoundEnumerate ( lpCallback: LPDSENUMCALLBACK ;
//    lpContext: Pointer ): HRESULT ; stdcall ;

//{$IFDEF UNICODE}
//const
//  LPDSENUMCALLBACK	= LPDSENUMCALLBACKW;
//  DirectSoundEnumerate	= DirectSoundEnumerateW;
//  DirectSoundCaptureEnumerate	= DirectSoundCaptureEnumerateW;
//{$ELSE}// UNICODE
//  LPDSENUMCALLBACK	= LPDSENUMCALLBACKA;
//  DirectSoundEnumerate	= DirectSoundEnumerateA;
//  DirectSoundCaptureEnumerate	= DirectSoundCaptureEnumerateA;
//{$ENDIF}// UNICODE



//
// IDirectSound
//



//{$UNDEF INTERFACE}
// Error :  #define INTERFACE IDirectSound

//type
  IDirectSound = class ( IUnknown )
// IUnknown methods
//    function _QueryInterface(Para0: TIID; var Para1: Pointer): HRESULT; virtual; stdcall; abstract;
//    function _AddRef: ULONG; virtual; stdcall; abstract;
//    function _Release: ULONG; virtual; stdcall; abstract;

// IDirectSound methods
    function CreateSoundBuffer(Para0: LPCDSBUFFERDESC; var Para1: LPDIRECTSOUNDBUFFER; 
	 Para2: pointer): HRESULT; virtual; stdcall; abstract;
    function GetCaps(Para0: LPDSCAPS): HRESULT; virtual; stdcall; abstract;
    function DuplicateSoundBuffer(Para0: LPDIRECTSOUNDBUFFER; var Para1: LPDIRECTSOUNDBUFFER): HRESULT; virtual; stdcall; abstract;
    function SetCooperativeLevel(Para0: HWND; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function Compact: HRESULT; virtual; stdcall; abstract;
    function GetSpeakerConfig(Para0: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function SetSpeakerConfig(Para0: DWORD): HRESULT; virtual; stdcall; abstract;
    function Initialize(Para0: PGUID): HRESULT; virtual; stdcall; abstract;
  end;

// Error : //{$IFNDEF __cplusplus} | | defined ( CINTERFACE )
//const
// Error :  #define IDirectSound_QueryInterface ( p , a , b ) ( p ) ->lpVtbl->QueryInterface ( p , a , b )
// Error :  #define IDirectSound_AddRef ( p ) ( p ) ->lpVtbl->AddRef ( p )
// Error :  #define IDirectSound_Release ( p ) ( p ) ->lpVtbl->Release ( p )
// Error :  #define IDirectSound_CreateSoundBuffer ( p , a , b , c ) ( p ) ->lpVtbl->CreateSoundBuffer ( p , a , b , c )
// Error :  #define IDirectSound_GetCaps ( p , a ) ( p ) ->lpVtbl->GetCaps ( p , a )
// Error :  #define IDirectSound_DuplicateSoundBuffer ( p , a , b ) ( p ) ->lpVtbl->DuplicateSoundBuffer ( p , a , b )
// Error :  #define IDirectSound_SetCooperativeLevel ( p , a , b ) ( p ) ->lpVtbl->SetCooperativeLevel ( p , a , b )
// Error :  #define IDirectSound_Compact ( p ) ( p ) ->lpVtbl->Compact ( p )
// Error :  #define IDirectSound_GetSpeakerConfig ( p , a ) ( p ) ->lpVtbl->GetSpeakerConfig ( p , a )
// Error :  #define IDirectSound_SetSpeakerConfig ( p , b ) ( p ) ->lpVtbl->SetSpeakerConfig ( p , b )
// Error :  #define IDirectSound_Initialize ( p , a ) ( p ) ->lpVtbl->Initialize ( p , a )
//{$ELSE}// !defined(__cplusplus) || defined(CINTERFACE)
// Error :  #define IDirectSound_QueryInterface ( p , a , b ) ( p ) ->QueryInterface ( a , b )
// Error :  #define IDirectSound_AddRef ( p ) ( p ) ->AddRef ( )
// Error :  #define IDirectSound_Release ( p ) ( p ) ->Release ( )
// Error :  #define IDirectSound_CreateSoundBuffer ( p , a , b , c ) ( p ) ->CreateSoundBuffer ( a , b , c )
// Error :  #define IDirectSound_GetCaps ( p , a ) ( p ) ->GetCaps ( a )
// Error :  #define IDirectSound_DuplicateSoundBuffer ( p , a , b ) ( p ) ->DuplicateSoundBuffer ( a , b )
// Error :  #define IDirectSound_SetCooperativeLevel ( p , a , b ) ( p ) ->SetCooperativeLevel ( a , b )
// Error :  #define IDirectSound_Compact ( p ) ( p ) ->Compact ( )
// Error :  #define IDirectSound_GetSpeakerConfig ( p , a ) ( p ) ->GetSpeakerConfig ( a )
// Error :  #define IDirectSound_SetSpeakerConfig ( p , b ) ( p ) ->SetSpeakerConfig ( b )
// Error :  #define IDirectSound_Initialize ( p , a ) ( p ) ->Initialize ( a )
//{$ENDIF}// !defined(__cplusplus) || defined(CINTERFACE)

//
// IDirectSoundBuffer
//



//{$UNDEF INTERFACE}
// Error :  #define INTERFACE IDirectSoundBuffer

  IDirectSoundBuffer = class ( IUnknown )
// IUnknown methods
//    function _QueryInterface(Para0: TIID; var Para1: Pointer): HRESULT; virtual; stdcall; abstract;
//    function _AddRef: ULONG; virtual; stdcall; abstract;
//    function _Release: ULONG; virtual; stdcall; abstract;

// IDirectSoundBuffer methods
    function GetCaps(Para0: LPDSBCAPS): HRESULT; virtual; stdcall; abstract;
    function GetCurrentPosition(Para0: LPDWORD; Para1: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function GetFormat(Para0: LPWAVEFORMATEX; Para1: DWORD; Para2: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function GetVolume(Para0: PLongint): HRESULT; virtual; stdcall; abstract;
    function GetPan(Para0: PLongint): HRESULT; virtual; stdcall; abstract;
    function GetFrequency(Para0: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function GetStatus(Para0: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function Initialize(Para0: LPDIRECTSOUND; Para1: LPCDSBUFFERDESC): HRESULT; virtual; stdcall; abstract;
    function Lock(Para0: DWORD; Para1: DWORD; var Para2: Pointer; Para3: LPDWORD; 
	 var Para4: Pointer; Para5: LPDWORD; Para6: DWORD): HRESULT; virtual; stdcall; abstract;
    function Play(Para0: DWORD; Para1: DWORD; Para2: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetCurrentPosition(Para0: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetFormat(Para0: LPCWAVEFORMATEX): HRESULT; virtual; stdcall; abstract;
    function SetVolume(Para0: LongInt): HRESULT; virtual; stdcall; abstract;
    function SetPan(Para0: LongInt): HRESULT; virtual; stdcall; abstract;
    function SetFrequency(Para0: DWORD): HRESULT; virtual; stdcall; abstract;
    function Stop: HRESULT; virtual; stdcall; abstract;
    function Unlock(Para0: Pointer; Para1: DWORD; Para2: Pointer; Para3: DWORD): HRESULT; virtual; stdcall; abstract;
    function Restore: HRESULT; virtual; stdcall; abstract;
  end;

// Error : //{$IFNDEF __cplusplus} | | defined ( CINTERFACE )
//const
// Error :  #define IDirectSoundBuffer_QueryInterface ( p , a , b ) ( p ) ->lpVtbl->QueryInterface ( p , a , b )
// Error :  #define IDirectSoundBuffer_AddRef ( p ) ( p ) ->lpVtbl->AddRef ( p )
// Error :  #define IDirectSoundBuffer_Release ( p ) ( p ) ->lpVtbl->Release ( p )
// Error :  #define IDirectSoundBuffer_GetCaps ( p , a ) ( p ) ->lpVtbl->GetCaps ( p , a )
// Error :  #define IDirectSoundBuffer_GetCurrentPosition ( p , a , b ) ( p ) ->lpVtbl->GetCurrentPosition ( p , a , b )
// Error :  #define IDirectSoundBuffer_GetFormat ( p , a , b , c ) ( p ) ->lpVtbl->GetFormat ( p , a , b , c )
// Error :  #define IDirectSoundBuffer_GetVolume ( p , a ) ( p ) ->lpVtbl->GetVolume ( p , a )
// Error :  #define IDirectSoundBuffer_GetPan ( p , a ) ( p ) ->lpVtbl->GetPan ( p , a )
// Error :  #define IDirectSoundBuffer_GetFrequency ( p , a ) ( p ) ->lpVtbl->GetFrequency ( p , a )
// Error :  #define IDirectSoundBuffer_GetStatus ( p , a ) ( p ) ->lpVtbl->GetStatus ( p , a )
// Error :  #define IDirectSoundBuffer_Initialize ( p , a , b ) ( p ) ->lpVtbl->Initialize ( p , a , b )
// Error :  #define IDirectSoundBuffer_Lock ( p , a , b , c , d , e , f , g ) ( p ) ->lpVtbl->Lock ( p , a , b , c , d , e , f , g )
// Error :  #define IDirectSoundBuffer_Play ( p , a , b , c ) ( p ) ->lpVtbl->Play ( p , a , b , c )
// Error :  #define IDirectSoundBuffer_SetCurrentPosition ( p , a ) ( p ) ->lpVtbl->SetCurrentPosition ( p , a )
// Error :  #define IDirectSoundBuffer_SetFormat ( p , a ) ( p ) ->lpVtbl->SetFormat ( p , a )
// Error :  #define IDirectSoundBuffer_SetVolume ( p , a ) ( p ) ->lpVtbl->SetVolume ( p , a )
// Error :  #define IDirectSoundBuffer_SetPan ( p , a ) ( p ) ->lpVtbl->SetPan ( p , a )
// Error :  #define IDirectSoundBuffer_SetFrequency ( p , a ) ( p ) ->lpVtbl->SetFrequency ( p , a )
// Error :  #define IDirectSoundBuffer_Stop ( p ) ( p ) ->lpVtbl->Stop ( p )
// Error :  #define IDirectSoundBuffer_Unlock ( p , a , b , c , d ) ( p ) ->lpVtbl->Unlock ( p , a , b , c , d )
// Error :  #define IDirectSoundBuffer_Restore ( p ) ( p ) ->lpVtbl->Restore ( p )
//{$ELSE}// !defined(__cplusplus) || defined(CINTERFACE)
// Error :  #define IDirectSoundBuffer_QueryInterface ( p , a , b ) ( p ) ->QueryInterface ( a , b )
// Error :  #define IDirectSoundBuffer_AddRef ( p ) ( p ) ->AddRef ( )
// Error :  #define IDirectSoundBuffer_Release ( p ) ( p ) ->Release ( )
// Error :  #define IDirectSoundBuffer_GetCaps ( p , a ) ( p ) ->GetCaps ( a )
// Error :  #define IDirectSoundBuffer_GetCurrentPosition ( p , a , b ) ( p ) ->GetCurrentPosition ( a , b )
// Error :  #define IDirectSoundBuffer_GetFormat ( p , a , b , c ) ( p ) ->GetFormat ( a , b , c )
// Error :  #define IDirectSoundBuffer_GetVolume ( p , a ) ( p ) ->GetVolume ( a )
// Error :  #define IDirectSoundBuffer_GetPan ( p , a ) ( p ) ->GetPan ( a )
// Error :  #define IDirectSoundBuffer_GetFrequency ( p , a ) ( p ) ->GetFrequency ( a )
// Error :  #define IDirectSoundBuffer_GetStatus ( p , a ) ( p ) ->GetStatus ( a )
// Error :  #define IDirectSoundBuffer_Initialize ( p , a , b ) ( p ) ->Initialize ( a , b )
// Error :  #define IDirectSoundBuffer_Lock ( p , a , b , c , d , e , f , g ) ( p ) ->Lock ( a , b , c , d , e , f , g )
// Error :  #define IDirectSoundBuffer_Play ( p , a , b , c ) ( p ) ->Play ( a , b , c )
// Error :  #define IDirectSoundBuffer_SetCurrentPosition ( p , a ) ( p ) ->SetCurrentPosition ( a )
// Error :  #define IDirectSoundBuffer_SetFormat ( p , a ) ( p ) ->SetFormat ( a )
// Error :  #define IDirectSoundBuffer_SetVolume ( p , a ) ( p ) ->SetVolume ( a )
// Error :  #define IDirectSoundBuffer_SetPan ( p , a ) ( p ) ->SetPan ( a )
// Error :  #define IDirectSoundBuffer_SetFrequency ( p , a ) ( p ) ->SetFrequency ( a )
// Error :  #define IDirectSoundBuffer_Stop ( p ) ( p ) ->Stop ( )
// Error :  #define IDirectSoundBuffer_Unlock ( p , a , b , c , d ) ( p ) ->Unlock ( a , b , c , d )
// Error :  #define IDirectSoundBuffer_Restore ( p ) ( p ) ->Restore ( )
//{$ENDIF}// !defined(__cplusplus) || defined(CINTERFACE)

//
// IDirectSound3DListener
//



//{$UNDEF INTERFACE}
// Error :  #define INTERFACE IDirectSound3DListener

//type
  IDirectSound3DListener = class ( IUnknown )
// IUnknown methods
//    function _QueryInterface(Para0: TIID; var Para1: Pointer): HRESULT; virtual; stdcall; abstract;
//    function _AddRef: ULONG; virtual; stdcall; abstract;
//    function _Release: ULONG; virtual; stdcall; abstract;

// IDirectSound3D methods
    function GetAllParameters(Para0: LPDS3DLISTENER): HRESULT; virtual; stdcall; abstract;
    function GetDistanceFactor(Para0: LPD3DVALUE): HRESULT; virtual; stdcall; abstract;
    function GetDopplerFactor(Para0: LPD3DVALUE): HRESULT; virtual; stdcall; abstract;
    function GetOrientation(Para0: LPD3DVECTOR; Para1: LPD3DVECTOR): HRESULT; virtual; stdcall; abstract;
    function GetPosition(Para0: LPD3DVECTOR): HRESULT; virtual; stdcall; abstract;
    function GetRolloffFactor(Para0: LPD3DVALUE): HRESULT; virtual; stdcall; abstract;
    function GetVelocity(Para0: LPD3DVECTOR): HRESULT; virtual; stdcall; abstract;
    function SetAllParameters(Para0: LPCDS3DLISTENER; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetDistanceFactor(Para0: D3DVALUE; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetDopplerFactor(Para0: D3DVALUE; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetOrientation(Para0: D3DVALUE; Para1: D3DVALUE; Para2: D3DVALUE; Para3: D3DVALUE; 
	 Para4: D3DVALUE; Para5: D3DVALUE; Para6: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetPosition(Para0: D3DVALUE; Para1: D3DVALUE; Para2: D3DVALUE; Para3: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetRolloffFactor(Para0: D3DVALUE; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetVelocity(Para0: D3DVALUE; Para1: D3DVALUE; Para2: D3DVALUE; Para3: DWORD): HRESULT; virtual; stdcall; abstract;
    function CommitDeferredSettings: HRESULT; virtual; stdcall; abstract;
  end;

// Error : //{$IFNDEF __cplusplus} | | defined ( CINTERFACE )
//const
// Error :  #define IDirectSound3DListener_QueryInterface ( p , a , b ) ( p ) ->lpVtbl->QueryInterface ( p , a , b )
// Error :  #define IDirectSound3DListener_AddRef ( p ) ( p ) ->lpVtbl->AddRef ( p )
// Error :  #define IDirectSound3DListener_Release ( p ) ( p ) ->lpVtbl->Release ( p )
// Error :  #define IDirectSound3DListener_GetAllParameters ( p , a ) ( p ) ->lpVtbl->GetAllParameters ( p , a )
// Error :  #define IDirectSound3DListener_GetDistanceFactor ( p , a ) ( p ) ->lpVtbl->GetDistanceFactor ( p , a )
// Error :  #define IDirectSound3DListener_GetDopplerFactor ( p , a ) ( p ) ->lpVtbl->GetDopplerFactor ( p , a )
// Error :  #define IDirectSound3DListener_GetOrientation ( p , a , b ) ( p ) ->lpVtbl->GetOrientation ( p , a , b )
// Error :  #define IDirectSound3DListener_GetPosition ( p , a ) ( p ) ->lpVtbl->GetPosition ( p , a )
// Error :  #define IDirectSound3DListener_GetRolloffFactor ( p , a ) ( p ) ->lpVtbl->GetRolloffFactor ( p , a )
// Error :  #define IDirectSound3DListener_GetVelocity ( p , a ) ( p ) ->lpVtbl->GetVelocity ( p , a )
// Error :  #define IDirectSound3DListener_SetAllParameters ( p , a , b ) ( p ) ->lpVtbl->SetAllParameters ( p , a , b )
// Error :  #define IDirectSound3DListener_SetDistanceFactor ( p , a , b ) ( p ) ->lpVtbl->SetDistanceFactor ( p , a , b )
// Error :  #define IDirectSound3DListener_SetDopplerFactor ( p , a , b ) ( p ) ->lpVtbl->SetDopplerFactor ( p , a , b )
// Error :  #define IDirectSound3DListener_SetOrientation ( p , a , b , c , d , e , f , g ) ( p ) ->lpVtbl->SetOrientation ( p , a , b , c , d , e , f , g )
// Error :  #define IDirectSound3DListener_SetPosition ( p , a , b , c , d ) ( p ) ->lpVtbl->SetPosition ( p , a , b , c , d )
// Error :  #define IDirectSound3DListener_SetRolloffFactor ( p , a , b ) ( p ) ->lpVtbl->SetRolloffFactor ( p , a , b )
// Error :  #define IDirectSound3DListener_SetVelocity ( p , a , b , c , d ) ( p ) ->lpVtbl->SetVelocity ( p , a , b , c , d )
// Error :  #define IDirectSound3DListener_CommitDeferredSettings ( p ) ( p ) ->lpVtbl->CommitDeferredSettings ( p )
//{$ELSE}// !defined(__cplusplus) || defined(CINTERFACE)
// Error :  #define IDirectSound3DListener_QueryInterface ( p , a , b ) ( p ) ->QueryInterface ( a , b )
// Error :  #define IDirectSound3DListener_AddRef ( p ) ( p ) ->AddRef ( )
// Error :  #define IDirectSound3DListener_Release ( p ) ( p ) ->Release ( )
// Error :  #define IDirectSound3DListener_GetAllParameters ( p , a ) ( p ) ->GetAllParameters ( a )
// Error :  #define IDirectSound3DListener_GetDistanceFactor ( p , a ) ( p ) ->GetDistanceFactor ( a )
// Error :  #define IDirectSound3DListener_GetDopplerFactor ( p , a ) ( p ) ->GetDopplerFactor ( a )
// Error :  #define IDirectSound3DListener_GetOrientation ( p , a , b ) ( p ) ->GetOrientation ( a , b )
// Error :  #define IDirectSound3DListener_GetPosition ( p , a ) ( p ) ->GetPosition ( a )
// Error :  #define IDirectSound3DListener_GetRolloffFactor ( p , a ) ( p ) ->GetRolloffFactor ( a )
// Error :  #define IDirectSound3DListener_GetVelocity ( p , a ) ( p ) ->GetVelocity ( a )
// Error :  #define IDirectSound3DListener_SetAllParameters ( p , a , b ) ( p ) ->SetAllParameters ( a , b )
// Error :  #define IDirectSound3DListener_SetDistanceFactor ( p , a , b ) ( p ) ->SetDistanceFactor ( a , b )
// Error :  #define IDirectSound3DListener_SetDopplerFactor ( p , a , b ) ( p ) ->SetDopplerFactor ( a , b )
// Error :  #define IDirectSound3DListener_SetOrientation ( p , a , b , c , d , e , f , g ) ( p ) ->SetOrientation ( a , b , c , d , e , f , g )
// Error :  #define IDirectSound3DListener_SetPosition ( p , a , b , c , d ) ( p ) ->SetPosition ( a , b , c , d )
// Error :  #define IDirectSound3DListener_SetRolloffFactor ( p , a , b ) ( p ) ->SetRolloffFactor ( a , b )
// Error :  #define IDirectSound3DListener_SetVelocity ( p , a , b , c , d ) ( p ) ->SetVelocity ( a , b , c , d )
// Error :  #define IDirectSound3DListener_CommitDeferredSettings ( p ) ( p ) ->CommitDeferredSettings ( )
//{$ENDIF}// !defined(__cplusplus) || defined(CINTERFACE)

//
// IDirectSound3DBuffer
//



//{$UNDEF INTERFACE}
// Error :  #define INTERFACE IDirectSound3DBuffer

  IDirectSound3DBuffer = class ( IUnknown )
// IUnknown methods
//    function _QueryInterface(Para0: TIID; var Para1: Pointer): HRESULT; virtual; stdcall; abstract;
//    function _AddRef: ULONG; virtual; stdcall; abstract;
//    function _Release: ULONG; virtual; stdcall; abstract;

// IDirectSoundBuffer3D methods
    function GetAllParameters(Para0: LPDS3DBUFFER): HRESULT; virtual; stdcall; abstract;
    function GetConeAngles(Para0: LPDWORD; Para1: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function GetConeOrientation(Para0: LPD3DVECTOR): HRESULT; virtual; stdcall; abstract;
    function GetConeOutsideVolume(Para0: PLongint): HRESULT; virtual; stdcall; abstract;
    function GetMaxDistance(Para0: LPD3DVALUE): HRESULT; virtual; stdcall; abstract;
    function GetMinDistance(Para0: LPD3DVALUE): HRESULT; virtual; stdcall; abstract;
    function GetMode(Para0: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function GetPosition(Para0: LPD3DVECTOR): HRESULT; virtual; stdcall; abstract;
    function GetVelocity(Para0: LPD3DVECTOR): HRESULT; virtual; stdcall; abstract;
    function SetAllParameters(Para0: LPCDS3DBUFFER; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetConeAngles(Para0: DWORD; Para1: DWORD; Para2: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetConeOrientation(Para0: D3DVALUE; Para1: D3DVALUE; Para2: D3DVALUE; 
	 Para3: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetConeOutsideVolume(Para0: LongInt; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetMaxDistance(Para0: D3DVALUE; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetMinDistance(Para0: D3DVALUE; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetMode(Para0: DWORD; Para1: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetPosition(Para0: D3DVALUE; Para1: D3DVALUE; Para2: D3DVALUE; Para3: DWORD): HRESULT; virtual; stdcall; abstract;
    function SetVelocity(Para0: D3DVALUE; Para1: D3DVALUE; Para2: D3DVALUE; Para3: DWORD): HRESULT; virtual; stdcall; abstract;
  end;

// Error : //{$IFNDEF __cplusplus} | | defined ( CINTERFACE )
//const
// Error :  #define IDirectSound3DBuffer_QueryInterface ( p , a , b ) ( p ) ->lpVtbl->QueryInterface ( p , a , b )
// Error :  #define IDirectSound3DBuffer_AddRef ( p ) ( p ) ->lpVtbl->AddRef ( p )
// Error :  #define IDirectSound3DBuffer_Release ( p ) ( p ) ->lpVtbl->Release ( p )
// Error :  #define IDirectSound3DBuffer_GetAllParameters ( p , a ) ( p ) ->lpVtbl->GetAllParameters ( p , a )
// Error :  #define IDirectSound3DBuffer_GetConeAngles ( p , a , b ) ( p ) ->lpVtbl->GetConeAngles ( p , a , b )
// Error :  #define IDirectSound3DBuffer_GetConeOrientation ( p , a ) ( p ) ->lpVtbl->GetConeOrientation ( p , a )
// Error :  #define IDirectSound3DBuffer_GetConeOutsideVolume ( p , a ) ( p ) ->lpVtbl->GetConeOutsiluVolume ( p , a )
// Error :  #define IDirectSound3DBuffer_GetPosition ( p , a ) ( p ) ->lpVtbl->GetPosition ( p , a )
// Error :  #define IDirectSound3DBuffer_GetMinDistance ( p , a ) ( p ) ->lpVtbl->GetMinDistance ( p , a )
// Error :  #define IDirectSound3DBuffer_GetMaxDistance ( p , a ) ( p ) ->lpVtbl->GetMaxDistance ( p , a )
// Error :  #define IDirectSound3DBuffer_GetMode ( p , a ) ( p ) ->lpVtbl->GetMode ( p , a )
// Error :  #define IDirectSound3DBuffer_GetVelocity ( p , a ) ( p ) ->lpVtbl->GetVelocity ( p , a )
// Error :  #define IDirectSound3DBuffer_SetAllParameters ( p , a , b ) ( p ) ->lpVtbl->SetAllParameters ( p , a , b )
// Error :  #define IDirectSound3DBuffer_SetConeAngles ( p , a , b , c ) ( p ) ->lpVtbl->SetConeAngles ( p , a , b , c )
// Error :  #define IDirectSound3DBuffer_SetConeOrientation ( p , a , b , c , d ) ( p ) ->lpVtbl->SetConeOrientation ( p , a , b , c , d )
// Error :  #define IDirectSound3DBuffer_SetConeOutsideVolume ( p , a , b ) ( p ) ->lpVtbl->SetConeOutsideVolume ( p , a , b )
// Error :  #define IDirectSound3DBuffer_SetPosition ( p , a , b , c , d ) ( p ) ->lpVtbl->SetPosition ( p , a , b , c , d )
// Error :  #define IDirectSound3DBuffer_SetMinDistance ( p , a , b ) ( p ) ->lpVtbl->SetMinDistance ( p , a , b )
// Error :  #define IDirectSound3DBuffer_SetMaxDistance ( p , a , b ) ( p ) ->lpVtbl->SetMaxDistance ( p , a , b )
// Error :  #define IDirectSound3DBuffer_SetMode ( p , a , b ) ( p ) ->lpVtbl->SetMode ( p , a , b )
// Error :  #define IDirectSound3DBuffer_SetVelocity ( p , a , b , c , d ) ( p ) ->lpVtbl->SetVelocity ( p , a , b , c , d )
//{$ELSE}// !defined(__cplusplus) || defined(CINTERFACE)
// Error :  #define IDirectSound3DBuffer_QueryInterface ( p , a , b ) ( p ) ->QueryInterface ( a , b )
// Error :  #define IDirectSound3DBuffer_AddRef ( p ) ( p ) ->AddRef ( )
// Error :  #define IDirectSound3DBuffer_Release ( p ) ( p ) ->Release ( )
// Error :  #define IDirectSound3DBuffer_GetAllParameters ( p , a ) ( p ) ->GetAllParameters ( a )
// Error :  #define IDirectSound3DBuffer_GetConeAngles ( p , a , b ) ( p ) ->GetConeAngles ( a , b )
// Error :  #define IDirectSound3DBuffer_GetConeOrientation ( p , a ) ( p ) ->GetConeOrientation ( a )
// Error :  #define IDirectSound3DBuffer_GetConeOutsideVolume ( p , a ) ( p ) ->GetConeOutsideVolume ( a )
// Error :  #define IDirectSound3DBuffer_GetPosition ( p , a ) ( p ) ->GetPosition ( a )
// Error :  #define IDirectSound3DBuffer_GetMinDistance ( p , a ) ( p ) ->GetMinDistance ( a )
// Error :  #define IDirectSound3DBuffer_GetMaxDistance ( p , a ) ( p ) ->GetMaxDistance ( a )
// Error :  #define IDirectSound3DBuffer_GetMode ( p , a ) ( p ) ->GetMode ( a )
// Error :  #define IDirectSound3DBuffer_GetVelocity ( p , a ) ( p ) ->GetVelocity ( a )
// Error :  #define IDirectSound3DBuffer_SetAllParameters ( p , a , b ) ( p ) ->SetAllParameters ( a , b )
// Error :  #define IDirectSound3DBuffer_SetConeAngles ( p , a , b , c ) ( p ) ->SetConeAngles ( a , b , c )
// Error :  #define IDirectSound3DBuffer_SetConeOrientation ( p , a , b , c , d ) ( p ) ->SetConeOrientation ( a , b , c , d )
// Error :  #define IDirectSound3DBuffer_SetConeOutsideVolume ( p , a , b ) ( p ) ->SetConeOutsideVolume ( a , b )
// Error :  #define IDirectSound3DBuffer_SetPosition ( p , a , b , c , d ) ( p ) ->SetPosition ( a , b , c , d )
// Error :  #define IDirectSound3DBuffer_SetMinDistance ( p , a , b ) ( p ) ->SetMinDistance ( a , b )
// Error :  #define IDirectSound3DBuffer_SetMaxDistance ( p , a , b ) ( p ) ->SetMaxDistance ( a , b )
// Error :  #define IDirectSound3DBuffer_SetMode ( p , a , b ) ( p ) ->SetMode ( a , b )
// Error :  #define IDirectSound3DBuffer_SetVelocity ( p , a , b , c , d ) ( p ) ->SetVelocity ( a , b , c , d )
//{$ENDIF}// !defined(__cplusplus) || defined(CINTERFACE)

//
// IDirectSoundCapture
//



//{$UNDEF INTERFACE}
// Error :  #define INTERFACE IDirectSoundCapture

//type
  IDirectSoundCapture = class ( IUnknown )
// IUnknown methods
//    function _QueryInterface(Para0: TIID; var Para1: Pointer): HRESULT; virtual; stdcall; abstract;
//    function _AddRef: ULONG; virtual; stdcall; abstract;
//    function _Release: ULONG; virtual; stdcall; abstract;

// IDirectSoundCapture methods
    function CreateCaptureBuffer(Para0: LPCDSCBUFFERDESC; var Para1: LPDIRECTSOUNDCAPTUREBUFFER; 
	 Para2: pointer): HRESULT; virtual; stdcall; abstract;
    function GetCaps(Para0: LPDSCCAPS): HRESULT; virtual; stdcall; abstract;
    function Initialize(Para0: PGUID): HRESULT; virtual; stdcall; abstract;
  end;

// Error : //{$IFNDEF __cplusplus} | | defined ( CINTERFACE )
//const
// Error :  #define IDirectSoundCapture_QueryInterface ( p , a , b ) ( p ) ->lpVtbl->QueryInterface ( p , a , b )
// Error :  #define IDirectSoundCapture_AddRef ( p ) ( p ) ->lpVtbl->AddRef ( p )
// Error :  #define IDirectSoundCapture_Release ( p ) ( p ) ->lpVtbl->Release ( p )
// Error :  #define IDirectSoundCapture_CreateCaptureBuffer ( p , a , b , c ) ( p ) ->lpVtbl->CreateCaptureBuffer ( p , a , b , c )
// Error :  #define IDirectSoundCapture_GetCaps ( p , a ) ( p ) ->lpVtbl->GetCaps ( p , a )
// Error :  #define IDirectSoundCapture_Initialize ( p , a ) ( p ) ->lpVtbl->Initialize ( p , a )
//{$ELSE}// !defined(__cplusplus) || defined(CINTERFACE)
// Error :  #define IDirectSoundCapture_QueryInterface ( p , a , b ) ( p ) ->QueryInterface ( a , b )
// Error :  #define IDirectSoundCapture_AddRef ( p ) ( p ) ->AddRef ( )
// Error :  #define IDirectSoundCapture_Release ( p ) ( p ) ->Release ( )
// Error :  #define IDirectSoundCapture_CreateCaptureBuffer ( p , a , b , c ) ( p ) ->CreateCaptureBuffer ( a , b , c )
// Error :  #define IDirectSoundCapture_GetCaps ( p , a ) ( p ) ->GetCaps ( a )
// Error :  #define IDirectSoundCapture_Initialize ( p , a ) ( p ) ->Initialize ( a )
//{$ENDIF}// !defined(__cplusplus) || defined(CINTERFACE)

//
// IDirectSoundCaptureBuffer
//



//{$UNDEF INTERFACE}
// Error :  #define INTERFACE IDirectSoundCaptureBuffer

//type
  IDirectSoundCaptureBuffer = class ( IUnknown )
// IUnknown methods
//    function _QueryInterface(Para0: TIID; var Para1: Pointer): HRESULT; virtual; stdcall; abstract;
//    function _AddRef: ULONG; virtual; stdcall; abstract;
//    function _Release: ULONG; virtual; stdcall; abstract;

// IDirectSoundCaptureBuffer methods
    function GetCaps(Para0: LPDSCBCAPS): HRESULT; virtual; stdcall; abstract;
    function GetCurrentPosition(Para0: LPDWORD; Para1: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function GetFormat(Para0: LPWAVEFORMATEX; Para1: DWORD; Para2: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function GetStatus(Para0: LPDWORD): HRESULT; virtual; stdcall; abstract;
    function Initialize(Para0: LPDIRECTSOUNDCAPTURE; Para1: LPCDSCBUFFERDESC): HRESULT; virtual; stdcall; abstract;
    function Lock(Para0: DWORD; Para1: DWORD; var Para2: Pointer; Para3: LPDWORD; 
	 var Para4: Pointer; Para5: LPDWORD; Para6: DWORD): HRESULT; virtual; stdcall; abstract;
    function Start(Para0: DWORD): HRESULT; virtual; stdcall; abstract;
    function Stop: HRESULT; virtual; stdcall; abstract;
    function Unlock(Para0: Pointer; Para1: DWORD; Para2: Pointer; Para3: DWORD): HRESULT; virtual; stdcall; abstract;
  end;

// Error : //{$IFNDEF __cplusplus} | | defined ( CINTERFACE )
//const
// Error :  #define IDirectSoundCaptureBuffer_QueryInterface ( p , a , b ) ( p ) ->lpVtbl->QueryInterface ( p , a , b )
// Error :  #define IDirectSoundCaptureBuffer_AddRef ( p ) ( p ) ->lpVtbl->AddRef ( p )
// Error :  #define IDirectSoundCaptureBuffer_Release ( p ) ( p ) ->lpVtbl->Release ( p )
// Error :  #define IDirectSoundCaptureBuffer_GetCaps ( p , a ) ( p ) ->lpVtbl->GetCaps ( p , a )
// Error :  #define IDirectSoundCaptureBuffer_GetCurrentPosition ( p , a , b ) ( p ) ->lpVtbl->GetCurrentPosition ( p , a , b )
// Error :  #define IDirectSoundCaptureBuffer_GetFormat ( p , a , b , c ) ( p ) ->lpVtbl->GetFormat ( p , a , b , c )
// Error :  #define IDirectSoundCaptureBuffer_GetStatus ( p , a ) ( p ) ->lpVtbl->GetStatus ( p , a )
// Error :  #define IDirectSoundCaptureBuffer_Initialize ( p , a , b ) ( p ) ->lpVtbl->Initialize ( p , a , b )
// Error :  #define IDirectSoundCaptureBuffer_Lock ( p , a , b , c , d , e , f , g ) ( p ) ->lpVtbl->Lock ( p , a , b , c , d , e , f , g )
// Error :  #define IDirectSoundCaptureBuffer_Start ( p , a ) ( p ) ->lpVtbl->Start ( p , a )
// Error :  #define IDirectSoundCaptureBuffer_Stop ( p ) ( p ) ->lpVtbl->Stop ( p )
// Error :  #define IDirectSoundCaptureBuffer_Unlock ( p , a , b , c , d ) ( p ) ->lpVtbl->Unlock ( p , a , b , c , d )
//{$ELSE}// !defined(__cplusplus) || defined(CINTERFACE)
// Error :  #define IDirectSoundCaptureBuffer_QueryInterface ( p , a , b ) ( p ) ->QueryInterface ( a , b )
// Error :  #define IDirectSoundCaptureBuffer_AddRef ( p ) ( p ) ->AddRef ( )
// Error :  #define IDirectSoundCaptureBuffer_Release ( p ) ( p ) ->Release ( )
// Error :  #define IDirectSoundCaptureBuffer_GetCaps ( p , a ) ( p ) ->GetCaps ( a )
// Error :  #define IDirectSoundCaptureBuffer_GetCurrentPosition ( p , a , b ) ( p ) ->GetCurrentPosition ( a , b )
// Error :  #define IDirectSoundCaptureBuffer_GetFormat ( p , a , b , c ) ( p ) ->GetFormat ( a , b , c )
// Error :  #define IDirectSoundCaptureBuffer_GetStatus ( p , a ) ( p ) ->GetStatus ( a )
// Error :  #define IDirectSoundCaptureBuffer_Initialize ( p , a , b ) ( p ) ->Initialize ( a , b )
// Error :  #define IDirectSoundCaptureBuffer_Lock ( p , a , b , c , d , e , f , g ) ( p ) ->Lock ( a , b , c , d , e , f , g )
// Error :  #define IDirectSoundCaptureBuffer_Start ( p , a ) ( p ) ->Start ( a )
// Error :  #define IDirectSoundCaptureBuffer_Stop ( p ) ( p ) ->Stop ( )
// Error :  #define IDirectSoundCaptureBuffer_Unlock ( p , a , b , c , d ) ( p ) ->Unlock ( a , b , c , d )
//{$ENDIF}// !defined(__cplusplus) || defined(CINTERFACE)

//
// IDirectSoundNotify
//



//{$UNDEF INTERFACE}
// Error :  #define INTERFACE IDirectSoundNotify


  IDirectSoundNotify = class ( IUnknown )
// IUnknown methods
//    function _QueryInterface(Para0: TIID; var Para1: Pointer): HRESULT; virtual; stdcall; abstract;
//    function _AddRef: ULONG; virtual; stdcall; abstract;
//    function _Release: ULONG; virtual; stdcall; abstract;

// IDirectSoundNotify methods
    function SetNotificationPositions(Para0: DWORD; Para1: LPCDSBPOSITIONNOTIFY): HRESULT; virtual; stdcall; abstract;
  end;

// Error : //{$IFNDEF __cplusplus} | | defined ( CINTERFACE )
//const
// Error :  #define IDirectSoundNotify_QueryInterface ( p , a , b ) ( p ) ->lpVtbl->QueryInterface ( p , a , b )
// Error :  #define IDirectSoundNotify_AddRef ( p ) ( p ) ->lpVtbl->AddRef ( p )
// Error :  #define IDirectSoundNotify_Release ( p ) ( p ) ->lpVtbl->Release ( p )
// Error :  #define IDirectSoundNotify_SetNotificationPositions ( p , a , b ) ( p ) ->lpVtbl->SetNotificationPositions ( p , a , b )
//{$ELSE}// !defined(__cplusplus) || defined(CINTERFACE)
// Error :  #define IDirectSoundNotify_QueryInterface ( p , a , b ) ( p ) ->QueryInterface ( a , b )
// Error :  #define IDirectSoundNotify_AddRef ( p ) ( p ) ->AddRef ( )
// Error :  #define IDirectSoundNotify_Release ( p ) ( p ) ->Release ( )
// Error :  #define IDirectSoundNotify_SetNotificationPositions ( p , a , b ) ( p ) ->SetNotificationPositions ( a , b )
//{$ENDIF}// !defined(__cplusplus) || defined(CINTERFACE)

//
// IKsPropertySet
//

//{$IFNDEF _IKsPropertySet_}
//{$DEFINE _IKsPropertySet_}

//{$IFDEF __cplusplus}
// 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined
  IKsPropertySet = class;
//{$ENDIF}// __cplusplus

  LPKSPROPERTYSET	= ^IKsPropertySet;



//{$UNDEF INTERFACE}
// Error :  #define INTERFACE IKsPropertySet

  IKsPropertySet = class ( IUnknown )
// IUnknown methods
//    function _QueryInterface(Para0: TIID; var Para1: Pointer): HRESULT; virtual; stdcall; abstract;
//    function _AddRef: ULONG; virtual; stdcall; abstract;
//    function _Release: ULONG; virtual; stdcall; abstract;

// IKsPropertySet methods
    function Get(Para0: TGUID; Para1: ULONG; Para2: Pointer; Para3: ULONG; Para4: Pointer;
	 Para5: ULONG; Para6: PULONG): HRESULT; virtual; stdcall; abstract;
    function Set_(Para0: TGUID; Para1: ULONG; Para2: Pointer; Para3: ULONG; Para4: Pointer;
	 Para5: ULONG): HRESULT; virtual; stdcall; abstract;
    function QuerySupport(Para0: TGUID; Para1: ULONG; Para2: PULONG): HRESULT; virtual; stdcall; abstract;
  end;

// Error : //{$IFNDEF __cplusplus} | | defined ( CINTERFACE )
const
// Error :  #define IKsPropertySet_QueryInterface ( p , a , b ) ( p ) ->lpVtbl->QueryInterface ( p , a , b )
// Error :  #define IKsPropertySet_AddRef ( p ) ( p ) ->lpVtbl->AddRef ( p )
// Error :  #define IKsPropertySet_Release ( p ) ( p ) ->lpVtbl->Release ( p )
// Error :  #define IKsPropertySet_Get ( p , a , b , c , d , e , f , g ) ( p ) ->lpVtbl->Get ( p , a , b , c , d , e , f , g )
// Error :  #define IKsPropertySet_Set ( p , a , b , c , d , e , f ) ( p ) ->lpVtbl->Set ( p , a , b , c , d , e , f )
// Error :  #define IKsPropertySet_QuerySupport ( p , a , b , c ) ( p ) ->lpVtbl->QuerySupport ( p , a , b , c )
//{$ELSE}// !defined(__cplusplus) || defined(CINTERFACE)
// Error :  #define IKsPropertySet_QueryInterface ( p , a , b ) ( p ) ->QueryInterface ( a , b )
// Error :  #define IKsPropertySet_AddRef ( p ) ( p ) ->AddRef ( )
// Error :  #define IKsPropertySet_Release ( p ) ( p ) ->Release ( )
// Error :  #define IKsPropertySet_Get ( p , a , b , c , d , e , f , g ) ( p ) ->Get ( a , b , c , d , e , f , g )
// Error :  #define IKsPropertySet_Set ( p , a , b , c , d , e , f ) ( p ) ->Set ( a , b , c , d , e , f )
// Error :  #define IKsPropertySet_QuerySupport ( p , a , b , c ) ( p ) ->QuerySupport ( a , b , c )
//{$ENDIF}// !defined(__cplusplus) || defined(CINTERFACE)

//{$ENDIF}// _IKsPropertySet_

//
// Return Codes
//

  DS_OK	= 0;

// The call failed because resources (such as a priority level)
// were already being used by another caller.
  DSERR_ALLOCATED	= $8878000A;

// The control (vol,pan,etc.) requested by the caller is not available.
  DSERR_CONTROLUNAVAIL	= $8878001E;

// An invalid parameter was passed to the returning function
  DSERR_INVALIDPARAM	= E_INVALIDARG;

// This call is not valid for the current state of this object
  DSERR_INVALIDCALL	= $88780032;

// An undetermined error occured inside the DirectSound subsystem
  DSERR_GENERIC	= E_FAIL;

// The caller does not have the priority level required for the function to
// succeed.
  DSERR_PRIOLEVELNEEDED	= $88780046;

// Not enough free memory is available to complete the operation
  DSERR_OUTOFMEMORY	= E_OUTOFMEMORY;

// The specified WAVE format is not supported
  DSERR_BADFORMAT	= $88780064;

// The function called is not supported at this time
  DSERR_UNSUPPORTED	= E_NOTIMPL;

// No sound driver is available for use
  DSERR_NODRIVER	= $88780078;

// This object is already initialized
  DSERR_ALREADYINITIALIZED	= $88780082;

// This object does not support aggregation
  DSERR_NOAGGREGATION	= CLASS_E_NOAGGREGATION;

// The buffer memory has been lost, and must be restored.
  DSERR_BUFFERLOST	= $88780096;

// Another app has a higher priority level, preventing this call from
// succeeding.
  DSERR_OTHERAPPHASPRIO	= $887800A0;

// This object has not been initialized
  DSERR_UNINITIALIZED	= $887800AA;

// The requested COM interface is not available
  DSERR_NOINTERFACE	= E_NOINTERFACE;

//
// Flags
//

  DSCAPS_PRIMARYMONO	= $00000001;
  DSCAPS_PRIMARYSTEREO	= $00000002;
  DSCAPS_PRIMARY8BIT	= $00000004;
  DSCAPS_PRIMARY16BIT	= $00000008;
  DSCAPS_CONTINUOUSRATE	= $00000010;
  DSCAPS_EMULDRIVER	= $00000020;
  DSCAPS_CERTIFIED	= $00000040;
  DSCAPS_SECONDARYMONO	= $00000100;
  DSCAPS_SECONDARYSTEREO	= $00000200;
  DSCAPS_SECONDARY8BIT	= $00000400;
  DSCAPS_SECONDARY16BIT	= $00000800;

  DSBPLAY_LOOPING	= $00000001;

  DSBSTATUS_PLAYING	= $00000001;
  DSBSTATUS_BUFFERLOST	= $00000002;
  DSBSTATUS_LOOPING	= $00000004;

  DSBLOCK_FROMWRITECURSOR	= $00000001;
  DSBLOCK_ENTIREBUFFER	= $00000002;

  DSSCL_NORMAL	= $00000001;
  DSSCL_PRIORITY	= $00000002;
  DSSCL_EXCLUSIVE	= $00000003;
  DSSCL_WRITEPRIMARY	= $00000004;

  DS3DMODE_NORMAL	= $00000000;
  DS3DMODE_HEADRELATIVE	= $00000001;
  DS3DMODE_DISABLE	= $00000002;

  DS3D_IMMEDIATE	= $00000000;
  DS3D_DEFERRED	= $00000001;

  DS3D_MINDISTANCEFACTOR	= 0.0;
  DS3D_MAXDISTANCEFACTOR	= 10.0;
  DS3D_DEFAULTDISTANCEFACTOR	= 1.0;

  DS3D_MINROLLOFFFACTOR	= 0.0;
  DS3D_MAXROLLOFFFACTOR	= 10.0;
  DS3D_DEFAULTROLLOFFFACTOR	= 1.0;

  DS3D_MINDOPPLERFACTOR	= 0.0;
  DS3D_MAXDOPPLERFACTOR	= 10.0;
  DS3D_DEFAULTDOPPLERFACTOR	= 1.0;

  DS3D_DEFAULTMINDISTANCE	= 1.0;
  DS3D_DEFAULTMAXDISTANCE	= 1000000000.0;

  DS3D_MINCONEANGLE	= 0;
  DS3D_MAXCONEANGLE	= 360;
  DS3D_DEFAULTCONEANGLE	= 360;

  DS3D_DEFAULTCONEOUTSIDEVOLUME	= 0;

  DSBCAPS_PRIMARYBUFFER	= $00000001;
  DSBCAPS_STATIC	= $00000002;
  DSBCAPS_LOCHARDWARE	= $00000004;
  DSBCAPS_LOCSOFTWARE	= $00000008;
  DSBCAPS_CTRL3D	= $00000010;
  DSBCAPS_CTRLFREQUENCY	= $00000020;
  DSBCAPS_CTRLPAN	= $00000040;
  DSBCAPS_CTRLVOLUME	= $00000080;
  DSBCAPS_CTRLPOSITIONNOTIFY	= $00000100;
  DSBCAPS_CTRLDEFAULT	= $000000E0;
  DSBCAPS_CTRLALL	= $000001F0;
  DSBCAPS_STICKYFOCUS	= $00004000;
  DSBCAPS_GLOBALFOCUS	= $00008000;
  DSBCAPS_GETCURRENTPOSITION2	= $00010000;
  DSBCAPS_MUTE3DATMAXDISTANCE	= $00020000;

  DSCBCAPS_WAVEMAPPED	= $80000000;

  DSSPEAKER_HEADPHONE	= $00000001;
  DSSPEAKER_MONO	= $00000002;
  DSSPEAKER_QUAD	= $00000003;
  DSSPEAKER_STEREO	= $00000004;
  DSSPEAKER_SURROUND	= $00000005;

  DSSPEAKER_GEOMETRY_MIN	= $00000005;	//   5 degrees
  DSSPEAKER_GEOMETRY_NARROW	= $0000000A;	//  10 degrees
  DSSPEAKER_GEOMETRY_WIDE	= $00000014;	//  20 degrees
  DSSPEAKER_GEOMETRY_MAX	= $000000B4;	// 180 degrees

// Error :  #define DSSPEAKER_COMBINED ( c , g ) ( ( DWORD ) ( ( ( BYTE ) ( c ) ) | ( ( DWORD ) ( ( BYTE ) ( g ) ) ) << 16 ) )
// Error :  #define DSSPEAKER_CONFIG ( a ) ( ( BYTE ) ( a ) )
// Error :  #define DSSPEAKER_GEOMETRY ( a ) ( ( BYTE ) ( ( ( DWORD ) ( a ) >> 16 ) & 0x00FF ) )

  DSCCAPS_EMULDRIVER	= $00000020;

  DSCBLOCK_ENTIREBUFFER	= $00000001;

  DSCBSTATUS_CAPTURING	= $00000001;
  DSCBSTATUS_LOOPING	= $00000002;

  DSCBSTART_LOOPING	= $00000001;

  DSBFREQUENCY_MIN	= 100;
  DSBFREQUENCY_MAX	= 100000;
  DSBFREQUENCY_ORIGINAL	= 0;

  DSBPAN_LEFT	= -10000;
  DSBPAN_CENTER	= 0;
  DSBPAN_RIGHT	= 10000;

  DSBVOLUME_MIN	= -10000;
  DSBVOLUME_MAX	= 0;

  DSBSIZE_MIN	= 4;
  DSBSIZE_MAX	= $0FFFFFFF;

  DSBPN_OFFSETSTOP	= $FFFFFFFF;

//{$IFDEF __cplusplus}
// };
//{$ENDIF}// __cplusplus

//{$ENDIF}// __DSOUND_INCLUDED__
type
  LPDSENUMCALLBACK = function ( lpGuid: PGUID ; lpstrDescription: LPSTR ;
      lpstrModule: LPSTR ; lpContext: Pointer ): BOOL ; stdcall ;

  function DirectSoundCreate(Para1: PGUID; var Para2: LPDIRECTSOUND; Para3: Pointer): HRESULT; stdcall;
	 external 'dsound.dll' name 'DirectSoundCreate';
  function DirectSoundEnumerateW(Para1: LPDSENUMCALLBACK; Para2: Pointer): HRESULT; stdcall;
	 external 'dsound.dll' name 'DirectSoundEnumerateW';
  function DirectSoundEnumerateA(Para1: LPDSENUMCALLBACK; Para2: Pointer): HRESULT; stdcall;
	 external 'dsound.dll' name 'DirectSoundEnumerateA';

  function DirectSoundCaptureCreate(Para1: PGUID; var Para2: LPDIRECTSOUNDCAPTURE;
	 Para3: pointer): HRESULT; stdcall;
	 external 'dsound.dll' name 'DirectSoundCaptureCreate';
  function DirectSoundCaptureEnumerateW(Para1: LPDSENUMCALLBACK; Para2: Pointer): HRESULT; stdcall;
	 external 'dsound.dll' name 'DirectSoundCaptureEnumerateW';
  function DirectSoundCaptureEnumerateA(Para1: LPDSENUMCALLBACK; Para2: Pointer): HRESULT; stdcall;
	 external 'dsound.dll' name 'DirectSoundCaptureEnumerateA';


implementation

//function DirectSoundEnumerate ; external 'DSOUND.DLL'
//    name 'DirectSoundEnumerateA' ;
//function DirectSoundCreate ; external 'DSOUND.DLL' ;

end.
