📄 headers.pas
字号:
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
// 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 + -