⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 headers.pas

📁 灰鸽子VIP1.2经典源代码
💻 PAS
📖 第 1 页 / 共 4 页
字号:

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmFilterEnum()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

type
  ACMFILTERENUMCBA = function (hadid: HACMDRIVERID; pafd: PAcmFilterDetailsA;
    dwInstance: DWORD; fdwSupport: DWORD) : BOOL; stdcall;
  ACMFILTERENUMCBW = function (hadid: HACMDRIVERID; pafd: PAcmFilterDetailsW;
    dwInstance: DWORD; fdwSupport: DWORD) : BOOL; stdcall;
  ACMFILTERENUMCB = ACMFILTERENUMCBA;

function acmFilterEnumA(had: HACMDRIVER; var pafd: TAcmFilterDetailsA;
  fnCallback: ACMFILTERENUMCBA; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFilterEnumA}
function acmFilterEnumW(had: HACMDRIVER; var pafd: TAcmFilterDetailsW;
  fnCallback: ACMFILTERENUMCBW; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFilterEnumW}
function acmFilterEnum(had: HACMDRIVER; var pafd: TAcmFilterDetails;
  fnCallback: ACMFILTERENUMCB; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFilterEnum}

const
  ACM_FILTERENUMF_DWFILTERTAG = $00010000;
  {$EXTERNALSYM ACM_FILTERENUMF_DWFILTERTAG}

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmFilterChoose()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

//
//  MM_ACM_FILTERCHOOSE is sent to hook callbacks by the Filter Chooser
//  Dialog...
//

const
  MM_ACM_FILTERCHOOSE           = $8000;
  {$EXTERNALSYM MM_ACM_FILTERCHOOSE}

  FILTERCHOOSE_MESSAGE          = 0;
  {$EXTERNALSYM FILTERCHOOSE_MESSAGE}
  FILTERCHOOSE_FILTERTAG_VERIFY = FILTERCHOOSE_MESSAGE + 0;
  {$EXTERNALSYM FILTERCHOOSE_FILTERTAG_VERIFY}
  FILTERCHOOSE_FILTER_VERIFY    = FILTERCHOOSE_MESSAGE + 1;
  {$EXTERNALSYM FILTERCHOOSE_FILTER_VERIFY}
  FILTERCHOOSE_CUSTOM_VERIFY    = FILTERCHOOSE_MESSAGE + 2;
  {$EXTERNALSYM FILTERCHOOSE_CUSTOM_VERIFY}

type
  ACMFILTERCHOOSEHOOKPROCA = function (hwd: HWND; uMsg: UINT; wParam: WPARAM;
    lParam: LPARAM): UINT; stdcall;
  {$EXTERNALSYM ACMFILTERCHOOSEHOOKPROCA}
  ACMFILTERCHOOSEHOOKPROCW = function (hwd: HWND; uMsg: UINT; wParam: WPARAM;
    lParam: LPARAM): UINT; stdcall;
  {$EXTERNALSYM ACMFILTERCHOOSEHOOKPROCW}
  ACMFILTERCHOOSEHOOKPROC = ACMFILTERCHOOSEHOOKPROCA;

//
//  ACMFILTERCHOOSE
//
//

type
  PAcmFilterChooseA = ^TAcmFilterChooseA;
  PAcmFilterChooseW = ^TAcmFilterChooseW;
  PAcmFilterChoose = PAcmFilterChooseA;
  _ACMFILTERCHOOSEA = packed record
    cbStruct: DWORD;
    fdwStyle: DWORD;
    hwndOwner: HWND;
    pwfltr: PWAVEFILTER;
    cbwfltr: DWORD;
    pszTitle: PAnsiChar;
    szFilterTag: array [0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS - 1] of AnsiChar;
    szFilter: array [0..ACMFILTERDETAILS_FILTER_CHARS - 1] of AnsiChar;
    pszName: PAnsiChar;
    cchName: DWORD;
    fdwEnum: DWORD;
    pwfltrEnum: PWAVEFILTER;
    hInstance: HINST;
    pszTemplateName: PAnsiChar;
    lCustData: LPARAM;
    pfnHook: ACMFILTERCHOOSEHOOKPROCA;
  end;
  {$EXTERNALSYM _ACMFILTERCHOOSEA}
  _ACMFILTERCHOOSEW = packed record
    cbStruct: DWORD;
    fdwStyle: DWORD;
    hwndOwner: HWND;
    pwfltr: PWAVEFILTER;
    cbwfltr: DWORD;
    pszTitle: PWideChar;
    szFilterTag: array [0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS - 1] of WideChar;
    szFilter: array [0..ACMFILTERDETAILS_FILTER_CHARS - 1] of WideChar;
    pszName: PWideChar;
    cchName: DWORD;
    fdwEnum: DWORD;
    pwfltrEnum: PWAVEFILTER;
    hInstance: HINST;
    pszTemplateName: PWideChar;
    lCustData: LPARAM;
    pfnHook: ACMFILTERCHOOSEHOOKPROCW;
  end;
  {$EXTERNALSYM _ACMFILTERCHOOSEW}
  _ACMFILTERCHOOSE = _ACMFILTERCHOOSEA;
  TAcmFilterChooseA = _ACMFILTERCHOOSEA;
  TAcmFilterChooseW = _ACMFILTERCHOOSEW;
  TAcmFilterChoose = TAcmFilterChooseA;

//
//  ACMFILTERCHOOSE.fdwStyle
//

const
  ACMFILTERCHOOSE_STYLEF_SHOWHELP             = $00000004;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_SHOWHELP}
  ACMFILTERCHOOSE_STYLEF_ENABLEHOOK           = $00000008;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_ENABLEHOOK}
  ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE       = $00000010;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE}
  ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE = $00000020;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE}
  ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT   = $00000040;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT}
  ACMFILTERCHOOSE_STYLEF_CONTEXTHELP          = $00000080;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_CONTEXTHELP}

function acmFilterChooseA(var pafltrc: TAcmFilterChooseA): MMRESULT; stdcall;
{$EXTERNALSYM acmFilterChooseA}
function acmFilterChooseW(var pafltrc: TAcmFilterChooseW): MMRESULT; stdcall;
{$EXTERNALSYM acmFilterChooseW}
function acmFilterChoose(var pafltrc: TAcmFilterChoose): MMRESULT; stdcall;
{$EXTERNALSYM acmFilterChoose}

//--------------------------------------------------------------------------;
//
//  ACM Stream API's
//
//--------------------------------------------------------------------------;

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmStreamOpen()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

type
  PAcmStreamHeader = ^TAcmStreamHeader;
  ACMSTREAMHEADER = packed record
    cbStruct: DWORD;
    fdwStatus: DWORD;
    dwUser: DWORD;
    pbSrc: PBYTE;
    cbSrcLength: DWORD;
    cbSrcLengthUsed: DWORD;
    dwSrcUser: DWORD;
    pbDst: PBYTE;
    cbDstLength: DWORD;
    cbDstLengthUsed: DWORD;
    dwDstUser: DWORD;
    dwReservedDriver: array [0..10 - 1] of DWORD;
  end;
  {$EXTERNALSYM tACMSTREAMHEADER}
  TAcmStreamHeader = ACMSTREAMHEADER;

//
//  ACMSTREAMHEADER.fdwStatus
//
//  ACMSTREAMHEADER_STATUSF_DONE: done bit for async conversions.
//

const
  ACMSTREAMHEADER_STATUSF_DONE     = $00010000;
  {$EXTERNALSYM ACMSTREAMHEADER_STATUSF_DONE}
  ACMSTREAMHEADER_STATUSF_PREPARED = $00020000;
  {$EXTERNALSYM ACMSTREAMHEADER_STATUSF_PREPARED}
  ACMSTREAMHEADER_STATUSF_INQUEUE  = $00100000;
  {$EXTERNALSYM ACMSTREAMHEADER_STATUSF_INQUEUE}

function acmStreamOpen(var phas: HACMSTREAM; had: HACMDRIVER; var pwfxSrc: TWAVEFORMATEX;
  var pwfxDst: TWAVEFORMATEX; pwfltr: PWAVEFILTER; dwCallback: DWORD; dwInstance: DWORD;
  fdwOpen: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamOpen}

const
  ACM_STREAMOPENF_QUERY       = $00000001;
  {$EXTERNALSYM ACM_STREAMOPENF_QUERY}
  ACM_STREAMOPENF_ASYNC       = $00000002;
  {$EXTERNALSYM ACM_STREAMOPENF_ASYNC}
  ACM_STREAMOPENF_NONREALTIME = $00000004;
  {$EXTERNALSYM ACM_STREAMOPENF_NONREALTIME}

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmStreamClose()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

function acmStreamClose(has: HACMSTREAM; fdwClose: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamClose}

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmStreamSize()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

function acmStreamSize(has: HACMSTREAM; cbInput: DWORD; var pdwOutputBytes: DWORD;
  fdwSize: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamSize}

const
  ACM_STREAMSIZEF_SOURCE      = $00000000;
  {$EXTERNALSYM ACM_STREAMSIZEF_SOURCE}
  ACM_STREAMSIZEF_DESTINATION = $00000001;
  {$EXTERNALSYM ACM_STREAMSIZEF_DESTINATION}
  ACM_STREAMSIZEF_QUERYMASK   = $0000000F;
  {$EXTERNALSYM ACM_STREAMSIZEF_QUERYMASK}

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmStreamReset()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

function acmStreamReset(has: HACMSTREAM; fdwReset: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamReset}

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmStreamMessage()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

function acmStreamMessage(has: HACMSTREAM; uMsg: UINT; var lParam1: LPARAM;
  var lParam2: LPARAM): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamMessage}

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmStreamConvert()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

function acmStreamConvert(has: HACMSTREAM; var pash: TAcmStreamHeader;
  fdwConvert: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamConvert}

const
  ACM_STREAMCONVERTF_BLOCKALIGN = $00000004;
  {$EXTERNALSYM ACM_STREAMCONVERTF_BLOCKALIGN}
  ACM_STREAMCONVERTF_START      = $00000010;
  {$EXTERNALSYM ACM_STREAMCONVERTF_START}
  ACM_STREAMCONVERTF_END        = $00000020;
  {$EXTERNALSYM ACM_STREAMCONVERTF_END}

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmStreamPrepareHeader()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

function acmStreamPrepareHeader(has: HACMSTREAM; var pash: TAcmStreamHeader;
  fdwPrepare: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamPrepareHeader}

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
//  acmStreamUnprepareHeader()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;

function acmStreamUnprepareHeader(has: HACMSTREAM; var pash: TAcmStreamHeader;
  fdwUnprepare: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamUnprepareHeader}

implementation

const
  msacm32 = 'msacm32.dll';

function acmGetVersion;            external msacm32 name 'acmGetVersion';
function acmMetrics;               external msacm32 name 'acmMetrics';
function acmDriverEnum;            external msacm32 name 'acmDriverEnum';
function acmDriverID;              external msacm32 name 'acmDriverID';
function acmDriverAddA;          external msacm32 name 'acmDriverAddA';
function acmDriverAddW;          external msacm32 name 'acmDriverAddW';
function acmDriverAdd;          external msacm32 name 'acmDriverAddA';
function acmDriverRemove;          external msacm32 name 'acmDriverRemove';
function acmDriverOpen;            external msacm32 name 'acmDriverOpen';
function acmDriverClose;           external msacm32 name 'acmDriverClose';
function acmDriverMessage;         external msacm32 name 'acmDriverMessage';
function acmDriverPriority;        external msacm32 name 'acmDriverPriority';
function acmDriverDetailsA;      external msacm32 name 'acmDriverDetailsA';
function acmDriverDetailsW;      external msacm32 name 'acmDriverDetailsW';
function acmDriverDetails;      external msacm32 name 'acmDriverDetailsA';
function acmFormatTagDetailsA;   external msacm32 name 'acmFormatTagDetailsA';
function acmFormatTagDetailsW;   external msacm32 name 'acmFormatTagDetailsW';
function acmFormatTagDetails;   external msacm32 name 'acmFormatTagDetailsA';
function acmFormatDetailsA;      external msacm32 name 'acmFormatDetailsA';
function acmFormatDetailsW;      external msacm32 name 'acmFormatDetailsW';
function acmFormatDetails;      external msacm32 name 'acmFormatDetailsA';
function acmFormatChooseA;       external msacm32 name 'acmFormatChooseA';
function acmFormatChooseW;       external msacm32 name 'acmFormatChooseW';
function acmFormatChoose;       external msacm32 name 'acmFormatChooseA';
function acmFormatEnumA;         external msacm32 name 'acmFormatEnumA';
function acmFormatEnumW;         external msacm32 name 'acmFormatEnumW';
function acmFormatEnum;         external msacm32 name 'acmFormatEnumA';
function acmFormatTagEnumA;      external msacm32 name 'acmFormatTagEnumA';
function acmFormatTagEnumW;      external msacm32 name 'acmFormatTagEnumW';
function acmFormatTagEnum;      external msacm32 name 'acmFormatTagEnumA';
function acmFormatSuggest;         external msacm32 name 'acmFormatSuggest';
function acmFilterTagDetailsA;   external msacm32 name 'acmFilterTagDetailsA';
function acmFilterTagDetailsW;   external msacm32 name 'acmFilterTagDetailsW';
function acmFilterTagDetails;   external msacm32 name 'acmFilterTagDetailsA';
function acmFilterTagEnumA;      external msacm32 name 'acmFilterTagEnumA';
function acmFilterTagEnumW;      external msacm32 name 'acmFilterTagEnumW';
function acmFilterTagEnum;      external msacm32 name 'acmFilterTagEnumA';
function acmFilterDetailsA;      external msacm32 name 'acmFilterDetailsA';
function acmFilterDetailsW;      external msacm32 name 'acmFilterDetailsW';
function acmFilterDetails;      external msacm32 name 'acmFilterDetailsA';
function acmFilterEnumA;         external msacm32 name 'acmFilterEnumA';
function acmFilterEnumW;         external msacm32 name 'acmFilterEnumW';
function acmFilterEnum;         external msacm32 name 'acmFilterEnumA';
function acmFilterChooseA;       external msacm32 name 'acmFilterChooseA';
function acmFilterChooseW;       external msacm32 name 'acmFilterChooseW';
function acmFilterChoose;       external msacm32 name 'acmFilterChooseA';
function acmStreamOpen;            external msacm32 name 'acmStreamOpen';
function acmStreamClose;           external msacm32 name 'acmStreamClose';
function acmStreamSize;            external msacm32 name 'acmStreamSize';
function acmStreamReset;           external msacm32 name 'acmStreamReset';
function acmStreamMessage;         external msacm32 name 'acmStreamMessage';
function acmStreamConvert;         external msacm32 name 'acmStreamConvert';
function acmStreamPrepareHeader;   external msacm32 name 'acmStreamPrepareHeader';
function acmStreamUnprepareHeader; external msacm32 name 'acmStreamUnprepareHeader';

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -