亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? directsound.pas

?? directx 控件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
(*==========================================================================;
 *
 *  Copyright (C) 1995-1997 Microsoft Corporation.  All Rights Reserved.
 *
 *  File:       dsound.h
 *  Content:    DirectSound include file
 *
 *  DirectX 7.0 Delphi adaptation by Erik Unger
 *
 *  Modified: 26-Feb-2000
 *
 *  Download: http://www.delphi-jedi.org/DelphiGraphics/
 *  E-Mail: Erik.Unger@gmx.at
 *
 ***************************************************************************)

{
  Windows 98 and debug versions DInput and DSound

  Under Windows 98, the "debug" setup of the DirectX SDK 6.x skips DInput.DLL
  and DSound.DLL, i.e. makes you end up with the retail version of these two
  files without any notice.
  The debug versions of DInput.DLL and DSound.DLL can be found in the
  \extras\Win98\Win98Dbg folder of the SDK CD; they need to be installed
  "manually".
}

unit DirectSound;

{$MINENUMSIZE 4}
{$ALIGN ON}

interface

uses
  Windows,
  SysUtils,
  MMSystem,
  Direct3D;

var
  DSoundDLL : HMODULE;
  
function DSErrorString(Value: HResult) : string;

const
  _FACDS = $878;
function MAKE_DSHResult(code: DWORD) : HResult;

const
  FLT_MIN = 1.175494351E-38;
  FLT_MAX = 3.402823466E+38;
  
const
// Direct Sound Component GUID {47D4D946-62E8-11cf-93BC-444553540000}
  CLSID_DirectSound: TGUID = '{47D4D946-62E8-11cf-93BC-444553540000}';

// DirectSound Capture Component GUID {B0210780-89CD-11d0-AF08-00A0C925CD16}
  CLSID_DirectSoundCapture: TGUID = '{47D4D946-62E8-11cf-93BC-444553540000}';

//
// Structures
//
type
  IDirectSound = interface;
  IDirectSoundBuffer = interface;
  IDirectSound3DListener = interface;
  IDirectSound3DBuffer = interface;
  IDirectSoundCapture = interface;
  IDirectSoundCaptureBuffer = interface;
  IDirectSoundNotify = interface;
  IKsPropertySet = interface;

  PDSCaps = ^TDSCaps;
  TDSCaps = packed 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;
  PCDSCaps = ^TDSCaps;

  PDSBCaps = ^TDSBCaps;
  TDSBCaps = packed record
    dwSize: DWORD;
    dwFlags: DWORD;
    dwBufferBytes: DWORD;
    dwUnlockTransferRate: DWORD;
    dwPlayCpuOverhead: DWORD;
  end;
  PCDSBCaps = ^TDSBCaps;

  TDSBufferDesc_DX6 = packed record
    dwSize: DWORD;
    dwFlags: DWORD;
    dwBufferBytes: DWORD;
    dwReserved: DWORD;
    lpwfxFormat: PWaveFormatEx;
  end;

  TDSBufferDesc1 = TDSBufferDesc_DX6;
  PDSBufferDesc1 = ^TDSBufferDesc1;
  PCDSBufferDesc1 = PDSBufferDesc1;

  TDSBufferDesc_DX7 = packed record
    dwSize: DWORD;
    dwFlags: DWORD;
    dwBufferBytes: DWORD;
    dwReserved: DWORD;
    lpwfxFormat: PWaveFormatEx;
    guid3DAlgorithm: TGUID;
  end;

{$IFDEF DIRECTX6}
  TDSBufferDesc = TDSBufferDesc_DX6;
{$ELSE}
  TDSBufferDesc = TDSBufferDesc_DX7;
{$ENDIF}

  PDSBufferDesc = ^TDSBufferDesc;
  PCDSBufferDesc = PDSBufferDesc;

(***
// Snipped from D3DTypes.pas:

  TD3DValue = Single;

  PD3DVector = ^TD3DVector;
  TD3DVector = packed record
    case Integer of
    0: (
      x: TD3DValue;
      y: TD3DValue;
      z: TD3DValue;
     );
    1: (
      dvX: TD3DValue;
      dvY: TD3DValue;
      dvZ: TD3DValue;
     );
  end;
*)

  PDS3DBuffer = ^TDS3DBuffer;
  TDS3DBuffer = packed record
    dwSize: DWORD;
    vPosition: TD3DVector;
    vVelocity: TD3DVector;
    dwInsideConeAngle: DWORD;
    dwOutsideConeAngle: DWORD;
    vConeOrientation: TD3DVector;
    lConeOutsideVolume: LongInt;
    flMinDistance: TD3DValue;
    flMaxDistance: TD3DValue;
    dwMode: DWORD;
  end;
  TCDS3DBuffer = ^TDS3DBuffer;

  PDS3DListener = ^TDS3DListener;
  TDS3DListener = packed record
    dwSize: DWORD;
    vPosition: TD3DVector;
    vVelocity: TD3DVector;
    vOrientFront: TD3DVector;
    vOrientTop: TD3DVector;
    flDistanceFactor: TD3DValue;
    flRolloffFactor: TD3DValue;
    flDopplerFactor: TD3DValue;
  end;
  PCDS3DListener = ^TDS3DListener;

  PDSCCaps = ^TDSCCaps;
  TDSCCaps = packed record
    dwSize: DWORD;
    dwFlags: DWORD;
    dwFormats: DWORD;
    dwChannels: DWORD;
  end;
  PCDSCCaps = ^TDSCCaps;

  PDSCBufferDesc = ^TDSCBufferDesc;
  TDSCBufferDesc = packed record
    dwSize: DWORD;
    dwFlags: DWORD;
    dwBufferBytes: DWORD;
    dwReserved: DWORD;
    lpwfxFormat: PWaveFormatEx;
  end;
  PCDSCBufferDesc = ^TDSCBufferDesc;

  PDSCBCaps = ^TDSCBCaps;
  TDSCBCaps = packed record
    dwSize: DWORD;
    dwFlags: DWORD;
    dwBufferBytes: DWORD;
    dwReserved: DWORD;
  end;
  PCDSCBCaps = ^TDSCBCaps;

  PDSBPositionNotify = ^TDSBPositionNotify;
  TDSBPositionNotify = packed record
    dwOffset: DWORD;
    hEventNotify: THandle;
  end;
  PCDSBPositionNotify = ^TDSBPositionNotify;

//
// DirectSound API
//
  TDSEnumCallbackW = function (lpGuid: PGUID; lpstrDescription: PWideChar;
      lpstrModule: PWideChar; lpContext: Pointer) : BOOL; stdcall;
  TDSEnumCallbackA = function (lpGuid: PGUID; lpstrDescription: PAnsiChar;
      lpstrModule: PAnsiChar; lpContext: Pointer) : BOOL; stdcall;
{$IFDEF UNICODE}
  TDSEnumCallback = TDSEnumCallbackW;
{$ELSE}
  TDSEnumCallback = TDSEnumCallbackA;
{$ENDIF}

//
// IDirectSound
//
  IDirectSound = interface (IUnknown)
    ['{279AFA83-4981-11CE-A521-0020AF0BE560}']
    // IDirectSound methods
    function CreateSoundBuffer(const lpDSBufferDesc: TDSBufferDesc;
        out lpIDirectSoundBuffer: IDirectSoundBuffer;
        pUnkOuter: IUnknown) : HResult; stdcall;
    function GetCaps(var lpDSCaps: TDSCaps) : HResult; stdcall;
    function DuplicateSoundBuffer(lpDsbOriginal: IDirectSoundBuffer;
        out lpDsbDuplicate: IDirectSoundBuffer) : HResult; stdcall;
    function SetCooperativeLevel(hwnd: HWND; dwLevel: DWORD) : HResult; stdcall;
    function Compact: HResult; stdcall;
    function GetSpeakerConfig(var lpdwSpeakerConfig: DWORD) : HResult; stdcall;
    function SetSpeakerConfig(dwSpeakerConfig: DWORD) : HResult; stdcall;
    function Initialize(lpGuid: PGUID) : HResult; stdcall;
  end;

//
// IDirectSoundBuffer
//
  IDirectSoundBuffer = interface (IUnknown)
    ['{279AFA85-4981-11CE-A521-0020AF0BE560}']
    // IDirectSoundBuffer methods
    function GetCaps(var lpDSCaps: TDSBCaps) : HResult; stdcall;
    function GetCurrentPosition
        (lpdwCapturePosition, lpdwReadPosition : PDWORD) : HResult; stdcall;
    function GetFormat(lpwfxFormat: PWaveFormatEx; dwSizeAllocated: DWORD;
        lpdwSizeWritten: PDWORD) : HResult; stdcall;
    function GetVolume(var lplVolume: integer) : HResult; stdcall;
    function GetPan(var lplPan: integer) : HResult; stdcall;
    function GetFrequency(var lpdwFrequency: DWORD) : HResult; stdcall;
    function GetStatus(var lpdwStatus: DWORD) : HResult; stdcall;
    function Initialize(lpDirectSound: IDirectSound;
        const lpcDSBufferDesc: TDSBufferDesc) : HResult; stdcall;
    function Lock(dwWriteCursor, dwWriteBytes: DWORD;
        var lplpvAudioPtr1: Pointer; var lpdwAudioBytes1: DWORD;
        var lplpvAudioPtr2: Pointer; var lpdwAudioBytes2: DWORD;
        dwFlags: DWORD) : HResult; stdcall;
    function Play(dwReserved1,dwReserved2,dwFlags: DWORD) : HResult; stdcall;
    function SetCurrentPosition(dwPosition: DWORD) : HResult; stdcall;
    function SetFormat(const lpcfxFormat: TWaveFormatEx) : HResult; stdcall;
    function SetVolume(lVolume: integer) : HResult; stdcall;
    function SetPan(lPan: integer) : HResult; stdcall;
    function SetFrequency(dwFrequency: DWORD) : HResult; stdcall;
    function Stop: HResult; stdcall;
    function Unlock(lpvAudioPtr1: Pointer; dwAudioBytes1: DWORD;
        lpvAudioPtr2: Pointer; dwAudioBytes2: DWORD) : HResult; stdcall;
    function Restore: HResult; stdcall;
  end;

//
// IDirectSound3DListener
//
  IDirectSound3DListener = interface (IUnknown)
    ['{279AFA84-4981-11CE-A521-0020AF0BE560}']
    // IDirectSound3D methods
    function GetAllParameters(var lpListener: TDS3DListener) : HResult; stdcall;
    function GetDistanceFactor(var lpflDistanceFactor: TD3DValue) : HResult; stdcall;
    function GetDopplerFactor(var lpflDopplerFactor: TD3DValue) : HResult; stdcall;
    function GetOrientation
        (var lpvOrientFront, lpvOrientTop: TD3DVector) : HResult; stdcall;
    function GetPosition(var lpvPosition: TD3DVector) : HResult; stdcall;
    function GetRolloffFactor(var lpflRolloffFactor: TD3DValue) : HResult; stdcall;
    function GetVelocity(var lpvVelocity: TD3DVector) : HResult; stdcall;
    function SetAllParameters
        (const lpcListener: TDS3DListener; dwApply: DWORD) : HResult; stdcall;
    function SetDistanceFactor
        (flDistanceFactor: TD3DValue; dwApply: DWORD) : HResult; stdcall;
    function SetDopplerFactor
        (flDopplerFactor: TD3DValue; dwApply: DWORD) : HResult; stdcall;
    function SetOrientation(xFront, yFront, zFront, xTop, yTop, zTop: TD3DValue;
        dwApply: DWORD) : HResult; stdcall;
    function SetPosition(x, y, z: TD3DValue; dwApply: DWORD) : HResult; stdcall;
    function SetRolloffFactor
        (flRolloffFactor: TD3DValue; dwApply: DWORD) : HResult; stdcall;
    function SetVelocity(x, y, z: TD3DValue; dwApply: DWORD) : HResult; stdcall;
    function CommitDeferredSettings: HResult; stdcall;
  end;


//
// IDirectSound3DBuffer
//
  IDirectSound3DBuffer = interface (IUnknown)
    ['{279AFA86-4981-11CE-A521-0020AF0BE560}']
    // IDirectSoundBuffer3D methods
    function GetAllParameters(var lpDs3dBuffer: TDS3DBuffer) : HResult; stdcall;
    function GetConeAngles
        (var lpdwInsideConeAngle, lpdwOutsideConeAngle: DWORD) : HResult; stdcall;
    function GetConeOrientation(var lpvOrientation: TD3DVector) : HResult; stdcall;
    function GetConeOutsideVolume(var lplConeOutsideVolume: integer) : HResult; stdcall;
    function GetMaxDistance(var lpflMaxDistance: TD3DValue) : HResult; stdcall;
    function GetMinDistance(var lpflMinDistance: TD3DValue) : HResult; stdcall;
    function GetMode(var lpdwMode: DWORD) : HResult; stdcall;
    function GetPosition(var lpvPosition: TD3DVector) : HResult; stdcall;
    function GetVelocity(var lpvVelocity: TD3DVector) : HResult; stdcall;
    function SetAllParameters
        (const lpcDs3dBuffer: TDS3DBuffer; dwApply: DWORD) : HResult; stdcall;
    function SetConeAngles
        (dwInsideConeAngle, dwOutsideConeAngle, dwApply: DWORD) : HResult; stdcall;
    function SetConeOrientation(x, y, z: TD3DValue; dwApply: DWORD) : HResult; stdcall;
    function SetConeOutsideVolume
        (lConeOutsideVolume: LongInt; dwApply: DWORD) : HResult; stdcall;
    function SetMaxDistance(flMaxDistance: TD3DValue; dwApply: DWORD) : HResult; stdcall;
    function SetMinDistance(flMinDistance: TD3DValue; dwApply: DWORD) : HResult; stdcall;
    function SetMode(dwMode: DWORD; dwApply: DWORD) : HResult; stdcall;
    function SetPosition(x, y, z: TD3DValue; dwApply: DWORD) : HResult; stdcall;
    function SetVelocity(x, y, z: TD3DValue; dwApply: DWORD) : HResult; stdcall;
  end;


//
// IDirectSoundCapture
//
  IDirectSoundCapture = interface (IUnknown)
    ['{b0210781-89cd-11d0-af08-00a0c925cd16}']
    // IDirectSoundCapture methods
    function CreateCaptureBuffer(const lpDSCBufferDesc: TDSCBufferDesc;
        var lplpDirectSoundCaptureBuffer: IDirectSoundCaptureBuffer;
        pUnkOuter: IUnknown) : HResult; stdcall;
    function GetCaps(var lpdwCaps: TDSCCaps) : HResult; stdcall;
    function Initialize(lpGuid: PGUID) : HResult; stdcall;
  end;


//
// IDirectSoundCaptureBuffer
//
  IDirectSoundCaptureBuffer = interface (IUnknown)
    ['{b0210782-89cd-11d0-af08-00a0c925cd16}']
    // IDirectSoundCaptureBuffer methods
    function GetCaps(var lpdwCaps: TDSCBCaps) : HResult; stdcall;
    function GetCurrentPosition
        (lpdwCapturePosition, lpdwReadPosition: PDWORD) : HResult; stdcall;
    function GetFormat(lpwfxFormat: PWaveFormatEx; dwSizeAllocated: DWORD;
        lpdwSizeWritten : PDWORD) : HResult; stdcall;
    function GetStatus(var lpdwStatus: DWORD) : HResult; stdcall;
    function Initialize(lpDirectSoundCapture: IDirectSoundCapture;
        const lpcDSBufferDesc: TDSCBufferDesc) : HResult; stdcall;
    function Lock(dwReadCursor, dwReadBytes: DWORD;
        var lplpvAudioPtr1: Pointer; var lpdwAudioBytes1: DWORD;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国av一区二区三区在线观看 | 日本高清免费不卡视频| 国产亚洲欧美色| 国产成人午夜电影网| 久久免费国产精品| 97久久超碰国产精品电影| 亚洲精品国产精华液| 欧美日韩精品欧美日韩精品一| 日韩综合在线视频| 2024国产精品视频| 成人av网站在线| 亚洲午夜激情网站| 日韩视频免费观看高清完整版在线观看 | 精品国产百合女同互慰| 国产成人aaa| 亚洲精品日韩专区silk| 欧美日本国产视频| 国产精品1区2区| 樱桃国产成人精品视频| 5月丁香婷婷综合| 国产精品自拍在线| 亚洲一区二区三区中文字幕在线| 91精品欧美福利在线观看 | www.欧美色图| 亚洲bdsm女犯bdsm网站| 久久久久久99精品| 欧美亚洲国产一卡| 国产麻豆精品在线观看| 一区二区三区久久| 精品国产乱码久久久久久久| 99视频一区二区三区| 日韩高清电影一区| 国产精品国产三级国产普通话99| 欧美日韩一区二区在线观看| 国产91精品精华液一区二区三区| 亚洲国产一区二区在线播放| 国产午夜精品久久久久久免费视| 欧美浪妇xxxx高跟鞋交| 99免费精品视频| 久久99精品国产.久久久久久| 成人免费在线观看入口| 久久在线观看免费| 欧美日韩国产一区| 91亚洲精品久久久蜜桃网站| 国产一区二区三区综合| 爽好久久久欧美精品| 亚洲女同女同女同女同女同69| 日韩免费一区二区三区在线播放| 91久久奴性调教| 成人免费看片app下载| 久久国产乱子精品免费女| 亚洲国产毛片aaaaa无费看| 国产精品国产a| 久久久国产精华| 日韩午夜在线观看| 欧美精选一区二区| 欧美日韩国产综合视频在线观看| 97se亚洲国产综合自在线| 国产乱色国产精品免费视频| 精品一区二区久久| 毛片一区二区三区| 青青草原综合久久大伊人精品| 亚洲午夜久久久久久久久电影院| 亚洲精品免费在线| 一区二区在线电影| 亚洲人成亚洲人成在线观看图片| 国产精品久久午夜夜伦鲁鲁| 久久久久久一级片| 91麻豆精品国产91久久久久久久久 | 欧美电影免费观看高清完整版| 9l国产精品久久久久麻豆| 国产一区久久久| 蜜桃久久av一区| 午夜精品久久久久久久久久久| 中文字幕一区二区三区色视频 | 日韩成人av影视| 亚洲精品国产品国语在线app| 国产欧美一区在线| 欧美精品一区二区三区高清aⅴ| 欧美日韩在线三区| 日本丶国产丶欧美色综合| 国产iv一区二区三区| 久久av资源站| 麻豆专区一区二区三区四区五区| 亚洲国产精品久久久久秋霞影院 | 视频一区二区欧美| 午夜国产不卡在线观看视频| 亚洲一区二区高清| 亚洲综合无码一区二区| 一区二区三区四区在线播放| 国产精品免费视频观看| 中文av字幕一区| 中文字幕精品一区| 欧美日韩国产高清一区| 欧美一区二区在线观看| 337p亚洲精品色噜噜| 宅男在线国产精品| 日韩亚洲欧美综合| 日韩精品一区二区三区视频播放| 欧美日韩视频在线观看一区二区三区 | 岛国一区二区在线观看| 成熟亚洲日本毛茸茸凸凹| 成人性生交大片免费看中文网站| 国产精品自产自拍| 成人禁用看黄a在线| 91网站最新网址| 日本韩国欧美一区二区三区| 一本久久综合亚洲鲁鲁五月天 | 欧美一区二区三区播放老司机| 久久久高清一区二区三区| 国产婷婷一区二区| 亚洲欧洲中文日韩久久av乱码| 亚洲免费视频成人| 亚洲成人一二三| 麻豆国产一区二区| 国产大片一区二区| 91麻豆swag| 日韩欧美一区二区久久婷婷| 国产免费观看久久| 一区二区三区美女视频| 天天操天天干天天综合网| 看片网站欧美日韩| 成人免费观看视频| 欧美日韩专区在线| 欧美精品一区二区三区久久久| 亚洲人成网站色在线观看| 亚洲国产精品久久人人爱 | 中文在线资源观看网站视频免费不卡| 亚洲免费伊人电影| 精品在线观看视频| 91亚洲精品乱码久久久久久蜜桃| 欧美日韩免费一区二区三区| 欧美精品一区二| 一区二区不卡在线播放| 国产综合色在线| 国产精品自拍网站| 91成人免费电影| 亚洲精品一线二线三线| 亚洲精品视频观看| 国产电影一区二区三区| 精品视频一区三区九区| 国产欧美日本一区二区三区| 一区二区三区四区在线| 午夜国产精品一区| 国产成人精品免费在线| 欧美高清一级片在线| 国产精品理论片| 日本怡春院一区二区| aaa亚洲精品一二三区| 日韩情涩欧美日韩视频| 亚洲一区av在线| 久久综合综合久久综合| 欧美日韩综合一区| 亚洲日本va在线观看| 国产美女在线观看一区| 宅男在线国产精品| 亚洲小说欧美激情另类| 成人美女视频在线看| 91蜜桃婷婷狠狠久久综合9色| 精品久久人人做人人爰| 香蕉乱码成人久久天堂爱免费| 成人av手机在线观看| 久久久久久久久久久久久久久99 | 亚洲最新在线观看| 成人激情电影免费在线观看| 日韩午夜中文字幕| 日韩激情在线观看| 欧美亚洲国产怡红院影院| 久久蜜臀精品av| 国产一区二区女| 欧美mv日韩mv| 蜜臀久久99精品久久久久宅男| 91久久精品日日躁夜夜躁欧美| 国产精品美女久久久久久| 国产一区不卡精品| 欧美丰满嫩嫩电影| 久久精品国产亚洲高清剧情介绍 | 91麻豆精品国产91久久久久久久久 | 亚洲电影激情视频网站| 国产在线精品一区在线观看麻豆| eeuss鲁片一区二区三区在线观看| 久久综合给合久久狠狠狠97色69| 日韩电影在线一区二区三区| 日本道在线观看一区二区| 亚洲精品国产一区二区三区四区在线 | 中文字幕日本乱码精品影院| 成人亚洲精品久久久久软件| 欧美国产一区二区在线观看| 国产精品1024| 亚洲免费视频中文字幕| 欧美最猛黑人xxxxx猛交| 一区二区三区资源| 在线观看www91| 亚洲国产一区二区视频| 欧美日韩免费一区二区三区| 亚洲天堂网中文字| 欧美日本一区二区在线观看| 日韩av在线播放中文字幕| 日韩一区二区影院| 久久成人精品无人区|