?? msacm.pas
字號(hào):
end;
type
PACMFILTERDETAILSW = ^TACMFILTERDETAILSW;
TACMFILTERDETAILSW = packed record
cbStruct : DWORD ;
dwFilterIndex : DWORD ;
dwFilterTag : DWORD ;
fdwSupport : DWORD ;
pwfltr : PWAVEFILTER ;
cbwfltr : DWORD ;
szFilter : array[0..ACMFILTERDETAILS_FILTER_CHARS-1] of wchar;
end;
type
PACMFILTERDETAILS = PACMFILTERDETAILSA;
TACMFILTERDETAILS = TACMFILTERDETAILSA;
function acmFilterDetailsA(had : HACMDRIVER; var pafd : TACMFILTERDETAILSA; fdwDetails : DWORD) : MMRESULT; stdcall;
function acmFilterDetailsW(had : HACMDRIVER; var pafd : TACMFILTERDETAILSW; fdwDetails : DWORD) : MMRESULT; stdcall;
function acmFilterDetails(had : HACMDRIVER; var pafd : TACMFILTERDETAILS; fdwDetails : DWORD) : MMRESULT; stdcall;
const
ACM_FILTERDETAILSF_INDEX = $00000000;
ACM_FILTERDETAILSF_FILTER = $00000001;
ACM_FILTERDETAILSF_QUERYMASK = $0000000F;
type
ACMFILTERENUMCBA = function(hadid : HACMDRIVERID; const pafd : TACMFILTERDETAILSA; dwInstance : DWORD; fdwSupport : DWORD) : BOOL; stdcall;
function acmFilterEnumA(had : HACMDRIVER; var pafd : TACMFILTERDETAILSA; fnCallback : ACMFILTERENUMCBA; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;
type
ACMFILTERENUMCBW = function(hadid : HACMDRIVERID; const pafd : TACMFILTERDETAILSW; dwInstance : DWORD; fdwSupport : DWORD) : BOOL; stdcall;
function acmFilterEnumW(had : HACMDRIVER; var pafd : TACMFILTERDETAILSW; fnCallback : ACMFILTERENUMCBW; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;
type
ACMFILTERENUMCB = ACMFILTERENUMCBA;
function acmFilterEnum(had : HACMDRIVER; var pafd : TACMFILTERDETAILS; fnCallback : ACMFILTERENUMCB; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;
const
ACM_FILTERENUMF_DWFILTERTAG = $00010000;
const
MM_ACM_FILTERCHOOSE = ($8000);
FILTERCHOOSE_MESSAGE = 0;
FILTERCHOOSE_FILTERTAG_VERIFY = (FILTERCHOOSE_MESSAGE+0);
FILTERCHOOSE_FILTER_VERIFY = (FILTERCHOOSE_MESSAGE+1);
FILTERCHOOSE_CUSTOM_VERIFY = (FILTERCHOOSE_MESSAGE+2);
type
ACMFILTERCHOOSEHOOKPROCA = function(hwnd : HWND; uMsg : UINT; wParam : WPARAM; lParam : LPARAM) : UINT; stdcall;
type
ACMFILTERCHOOSEHOOKPROCW = function(hwnd : HWND; uMsg : UINT; wParam : WPARAM; lParam : LPARAM) : UINT; stdcall;
type
ACMFILTERCHOOSEHOOKPROC = ACMFILTERCHOOSEHOOKPROCA;
type
PACMFILTERCHOOSEA = ^TACMFILTERCHOOSEA;
TACMFILTERCHOOSEA = packed record
cbStruct : DWORD ; // sizeof(ACMFILTERCHOOSE)
fdwStyle : DWORD ; // chooser style flags
hwndOwner : HWND ; // caller's window handle
pwfltr : PWAVEFILTER ; // ptr to wfltr buf to receive choice
cbwfltr : DWORD ; // size of mem buf for pwfltr
pszTitle : LPCSTR ;
szFilterTag : array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS-1] of char;
szFilter : array[0..ACMFILTERDETAILS_FILTER_CHARS-1] of char;
pszName : LPSTR ; // custom name selection
cchName : DWORD ; // size in chars of mem buf for pszName
fdwEnum : DWORD ; // filter enumeration restrictions
pwfltrEnum : PWAVEFILTER ; // filter describing restrictions
hInstance : THandle ; // app instance containing dlg template
pszTemplateName : LPCSTR ; // custom template name
lCustData : LPARAM ; // data passed to hook fn.
pfnHook : ACMFILTERCHOOSEHOOKPROCA ; // ptr to hook function
end;
type
PACMFILTERCHOOSEW = ^TACMFILTERCHOOSEW;
TACMFILTERCHOOSEW = packed record
cbStruct : DWORD ; // sizeof(ACMFILTERCHOOSE)
fdwStyle : DWORD ; // chooser style flags
hwndOwner : HWND ; // caller's window handle
pwfltr : PWAVEFILTER ; // ptr to wfltr buf to receive choice
cbwfltr : DWORD ; // size of mem buf for pwfltr
pszTitle : LPCWSTR ;
szFilterTag : array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS-1] of wchar;
szFilter : array[0..ACMFILTERDETAILS_FILTER_CHARS-1] of wchar;
pszName : LPWSTR ; // custom name selection
cchName : DWORD ; // size in chars of mem buf for pszName
fdwEnum : DWORD ; // filter enumeration restrictions
pwfltrEnum : PWAVEFILTER ; // filter describing restrictions
hInstance : THandle ; // app instance containing dlg template
pszTemplateName : LPCWSTR ; // custom template name
lCustData : LPARAM ; // data passed to hook fn.
pfnHook : ACMFILTERCHOOSEHOOKPROCW ; // ptr to hook function
end;
type
PACMFILTERCHOOSE = PACMFILTERCHOOSEA;
TACMFILTERCHOOSE = TACMFILTERCHOOSEA;
const
ACMFILTERCHOOSE_STYLEF_SHOWHELP = $00000004;
ACMFILTERCHOOSE_STYLEF_ENABLEHOOK = $00000008;
ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE = $00000010;
ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE = $00000020;
ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT = $00000040;
ACMFILTERCHOOSE_STYLEF_CONTEXTHELP = $00000080;
function acmFilterChooseA(var pafltrc : TACMFILTERCHOOSEA) : MMRESULT; stdcall;
function acmFilterChooseW(var pafltrc : TACMFILTERCHOOSEW) : MMRESULT; stdcall;
function acmFilterChoose(var pafltrc : TACMFILTERCHOOSE) : MMRESULT; stdcall;
type
PACMSTREAMHEADER = ^TACMSTREAMHEADER;
TACMSTREAMHEADER = packed record
cbStruct : DWORD ; // sizeof(ACMSTREAMHEADER)
fdwStatus : DWORD ; // ACMSTREAMHEADER_STATUSF_*
dwUser : DWORD ; // user instance data for hdr
pbSrc : PBYTE ;
cbSrcLength : DWORD ;
cbSrcLengthUsed : DWORD ;
dwSrcUser : DWORD ; // user instance data for src
pbDst : PBYTE ;
cbDstLength : DWORD ;
cbDstLengthUsed : DWORD ;
dwDstUser : DWORD ; // user instance data for dst
dwReservedDriver : array [0..9] of DWORD; // driver reserved work space
end;
const
ACMSTREAMHEADER_STATUSF_DONE = $00010000;
ACMSTREAMHEADER_STATUSF_PREPARED = $00020000;
ACMSTREAMHEADER_STATUSF_INQUEUE = $00100000;
function acmStreamOpen(phas : PHACMSTREAM; had : HACMDRIVER; const pwfxSrc : TWAVEFORMATEX; const pwfxdst : TWAVEFORMATEX; pwfltr : PWAVEFILTER; dwCallback : DWORD; dwInstance : DWORD; fdwOpen : DWORD) : MMRESULT; stdcall;
const
ACM_STREAMOPENF_QUERY = $00000001;
ACM_STREAMOPENF_ASYNC = $00000002;
ACM_STREAMOPENF_NONREALTIME = $00000004;
function acmStreamClose(has : HACMSTREAM; fdwClose : DWORD) : MMRESULT; stdcall;
function acmStreamSize(has : HACMSTREAM; cbInput : DWORD; var pdwOutputByte : DWORD; fdwSize : DWORD) : MMRESULT; stdcall;
const
ACM_STREAMSIZEF_SOURCE = $00000000;
ACM_STREAMSIZEF_DESTINATION = $00000001;
ACM_STREAMSIZEF_QUERYMASK = $0000000F;
function acmStreamReset(has : HACMSTREAM; fdwReset : DWORD) : MMRESULT; stdcall;
function acmStreamMessage(has : HACMSTREAM; uMsg : UINT; lParam1 : LPARAM; lParam2 : LPARAM) : MMRESULT; stdcall;
function acmStreamConvert(has : HACMSTREAM; var pash : TACMSTREAMHEADER; fdwConvert : DWORD) : MMRESULT; stdcall;
const
ACM_STREAMCONVERTF_BLOCKALIGN = $00000004;
ACM_STREAMCONVERTF_START = $00000010;
ACM_STREAMCONVERTF_END = $00000020;
function acmStreamPrepareHeader(has : HACMSTREAM; var pash : TACMSTREAMHEADER; fdwPrepare : DWORD) : MMRESULT; stdcall;
function acmStreamUnprepareHeader(has : HACMSTREAM; var pash : TACMSTREAMHEADER; fdwUnprepare : DWORD) : MMRESULT; stdcall;
implementation
const
msacm32 = 'msacm32.dll';
// acm
function acmGetVersion; external msacm32 name 'acmGetVersion';
function acmMetrics; external msacm32 name 'acmMetrics';
// acmDriver
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 ACMDRIVERDETAILS_FCCTYPE_AUDIOCODE : FOURCC;
begin
Result := MMSystem.mmioStringToFOURCC('audc', 0);
end;
function acmDriverDetailsA; external msacm32 name 'acmDriverDetailsA';
function acmDriverDetailsW; external msacm32 name 'acmDriverDetailsW';
function acmDriverDetails; external msacm32 name 'acmDriverDetailsA';
// acmFormat
function acmFormatTagDetailsA; external msacm32 name 'acmFormatTagDetailsA';
function acmFormatTagDetailsW; external msacm32 name 'acmFormatTagDetailsW';
function acmFormatTagDetails; external msacm32 name 'acmFormatTagDetailsA';
function acmFormatTagEnumA; external msacm32 name 'acmFormatTagEnumA';
function acmFormatTagEnumW; external msacm32 name 'acmFormatTagEnumW';
function acmFormatTagEnum; external msacm32 name 'acmFormatTagEnumA';
function acmFormatDetailsA; external msacm32 name 'acmFormatDetailsA';
function acmFormatDetailsW; external msacm32 name 'acmFormatDetailsW';
function acmFormatDetails; external msacm32 name 'acmFormatDetailsA';
function acmFormatEnumA; external msacm32 name 'acmFormatEnumA';
function acmFormatEnumW; external msacm32 name 'acmFormatEnumW';
function acmFormatEnum; external msacm32 name 'acmFormatEnumA';
function acmFormatSuggest; external msacm32 name 'acmFormatSuggest';
function acmFormatChooseA; external msacm32 name 'acmFormatChooseA';
function acmFormatChooseW; external msacm32 name 'acmFormatChooseW';
function acmFormatChoose; external msacm32 name 'acmFormatChooseA';
// acmFilter
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';
// acmStream
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.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -