📄 mmacm.pas
字号:
{-----------------------------------------------------------------------}
{ acmFormatEnum }
{-----------------------------------------------------------------------}
type
TACMFORMATENUMCB = function(hadid: THACMDRIVERID; pafd: PACMFORMATDETAILS;
dwInstance, fdwSupport: DWORD): Boolean;
{$IFDEF WIN32}stdcall;{$ENDIF}
var
acmFormatEnum: function(had: THACMDRIVER; pafd: PACMFORMATDETAILS;
fnCallBack: TACMFORMATENUMCB;
dwInstance, fdwEnum: DWORD): MMRESULT;
{$IFDEF WIN32}stdcall;{$ENDIF}
const
ACM_FORMATENUMF_WFORMATTAG = $00010000;
ACM_FORMATENUMF_NCHANNELS = $00020000;
ACM_FORMATENUMF_NSAMPLESPERSEC = $00040000;
ACM_FORMATENUMF_WBITSPERSAMPLE = $00080000;
ACM_FORMATENUMF_CONVERT = $00100000;
ACM_FORMATENUMF_SUGGEST = $00200000;
ACM_FORMATENUMF_HARDWARE = $00400000;
ACM_FORMATENUMF_INPUT = $00800000;
ACM_FORMATENUMF_OUTPUT = $01000000;
{-----------------------------------------------------------------------}
{ acmFormatSuggest }
{-----------------------------------------------------------------------}
var
acmFormatSuggest: function(had: THACMDRIVER; pwfxSrc, pwfxDst: PWAVEFORMATEX;
cbwfxDst, fdwSuggest: DWORD): MMRESULT;
{$IFDEF WIN32}stdcall;{$ENDIF}
const
ACM_FORMATSUGGESTF_WFORMATTAG = $00010000;
ACM_FORMATSUGGESTF_NCHANNELS = $00020000;
ACM_FORMATSUGGESTF_NSAMPLESPERSEC = $00040000;
ACM_FORMATSUGGESTF_WBITSPERSAMPLE = $00080000;
ACM_FORMATSUGGESTF_TYPEMASK = $00FF0000;
{-----------------------------------------------------------------------}
{ acmFormatChoose }
{-----------------------------------------------------------------------}
const
ACMHELPMSGSTRING = 'acmchoose_help';
ACMHELPMSGCONTEXTMENU = 'acmchoose_contextmenu';
ACMHELPMSGCONTEXTHELP = 'acmchoose_contexthelp';
{ MM_ACM_FORMATCHOOSE is sent to hook callbacks by the Format Chooser }
{ Dialog... }
MM_ACM_FORMATCHOOSE = ($8000);
FORMATCHOOSE_MESSAGE = 0;
FORMATCHOOSE_FORMATTAG_VERIFY = (FORMATCHOOSE_MESSAGE+0);
FORMATCHOOSE_FORMAT_VERIFY = (FORMATCHOOSE_MESSAGE+1);
FORMATCHOOSE_CUSTOM_VERIFY = (FORMATCHOOSE_MESSAGE+2);
type
TACMFORMATCHOOSEHOOKPROC = function(hwnd: HWND; uMsg: UINT;
wParam: WPARAM; lParam: LPARAM): UINT;
{$IFDEF WIN32}stdcall;{$ENDIF}
PACMFORMATCHOOSE = ^TACMFORMATCHOOSE;
TACMFORMATCHOOSE = record
cbStruct : DWORD; { sizeof(ACMFORMATCHOOSE) }
fdwStyle : DWORD; { chooser style flags }
hwndOwner : HWND; { caller's window handle }
pwfx : PWAVEFORMATEX; { ptr to wfx buf to receive choice }
cbwfx : DWORD; { size of mem buf for pwfx }
pszTitle : PCHAR; { dialog box title bar }
szFormatTag : array[0..ACMFORMATTAGDETAILS_FORMATTAG_CHARS-1] of Char;
szFormat : array[0..ACMFORMATDETAILS_FORMAT_CHARS-1] of Char;
pszName : PCHAR; { custom name selection }
cchName : DWORD; { size in chars of mem buf for pszName }
fdwEnum : DWORD; { format enumeration restrictions }
pwfxEnum : PWAVEFORMATEX; { format describing restrictions }
hInstance : THandle; { app instance containing dlg template }
pszTemplateName: PChar; { custom template name }
lCustData : LPARAM; { data passed to hook fn. }
pfnHook : TACMFORMATCHOOSEHOOKPROC;{ ptr to hook function }
end;
{-----------------------------------------------------------------------}
{ ACMFORMATCHOOSE.fdwStyle }
{-----------------------------------------------------------------------}
const
ACMFORMATCHOOSE_STYLEF_SHOWHELP = $00000004;
ACMFORMATCHOOSE_STYLEF_ENABLEHOOK = $00000008;
ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE = $00000010;
ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE = $00000020;
ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT = $00000040;
ACMFORMATCHOOSE_STYLEF_CONTEXTHELP = $00000080;
var
acmFormatChoose: function(pafmtc: PACMFORMATCHOOSE): MMRESULT;
{$IFDEF WIN32}stdcall;{$ENDIF}
{=======================================================================}
{ ACM Filter Tags }
{=======================================================================}
{-----------------------------------------------------------------------}
{ acmFilterTagDetails }
{-----------------------------------------------------------------------}
const
ACMFILTERTAGDETAILS_FILTERTAG_CHARS = 48;
type
PACMFILTERTAGDETAILS = ^TACMFILTERTAGDETAILS;
TACMFILTERTAGDETAILS = record
cbStruct : DWORD;
dwFilterTagIndex: DWORD;
dwFilterTag : DWORD;
cbFilterSize : DWORD;
fdwSupport : DWORD;
cStandardFilters: DWORD;
szFilterTag: array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS-1] of Char;
end;
var
acmFilterTagDetails: function(had: THACMDRIVER; paftd: PACMFILTERTAGDETAILS;
fdwDetails: DWORD): MMRESULT;
{$IFDEF WIN32}stdcall;{$ENDIF}
const
ACM_FILTERTAGDETAILSF_INDEX = $00000000;
ACM_FILTERTAGDETAILSF_FILTERTAG = $00000001;
ACM_FILTERTAGDETAILSF_LARGESTSIZE = $00000002;
ACM_FILTERTAGDETAILSF_QUERYMASK = $0000000F;
{-----------------------------------------------------------------------}
{ acmFilterTagEnum }
{-----------------------------------------------------------------------}
type
TACMFILTERTAGENUMCB = function(hadid: THACMDRIVERID;
paftd: PACMFILTERTAGDETAILS;
dwInstance, fdwSupport: DWORD): Boolean;
{$IFDEF WIN32}stdcall;{$ENDIF}
var
acmFilterTagEnum: function(had: THACMDRIVER;paftd: PACMFILTERTAGDETAILS;
fnCallBack: TACMFILTERTAGENUMCB;
dwInstance, fdwEnum: DWORD): MMRESULT;
{$IFDEF WIN32}stdcall;{$ENDIF}
{=======================================================================}
{ ACM Filters }
{=======================================================================}
{-----------------------------------------------------------------------}
{ acmFilterDetails }
{-----------------------------------------------------------------------}
const
ACMFILTERDETAILS_FILTER_CHARS = 128;
type
PACMFILTERDETAILS = ^TACMFILTERDETAILS;
TACMFILTERDETAILS = record
cbStruct : DWORD;
dwFilterIndex: DWORD;
dwFilterTag : DWORD;
fdwSupport : DWORD;
pwfltr : PWAVEFILTER;
cbwfltr : DWORD;
szFilter: array[0..ACMFILTERDETAILS_FILTER_CHARS-1] of char;
end;
var
acmFilterDetails: function(had: THACMDRIVER;
pafd: PACMFILTERDETAILS;
fdwDetails: DWORD): MMRESULT;
{$IFDEF WIN32}stdcall;{$ENDIF}
const
ACM_FILTERDETAILSF_INDEX = $00000000;
ACM_FILTERDETAILSF_FILTER = $00000001;
ACM_FILTERDETAILSF_QUERYMASK = $0000000F;
{-----------------------------------------------------------------------}
{ acmFilterEnum }
{-----------------------------------------------------------------------}
type
TACMFILTERENUMCB = function(hadid: THACMDRIVERID;
pafd: PACMFILTERDETAILS;
dwInstance, fdwSupport: DWORD): Boolean;
{$IFDEF WIN32}stdcall;{$ENDIF}
var
acmFilterEnum: function(had: THACMDRIVER; pafd: PACMFILTERDETAILS;
fnCallBack: TACMFILTERENUMCB;
dwInstance, fdwEnum: DWORD): MMRESULT;
{$IFDEF WIN32}stdcall;{$ENDIF}
const
ACM_FILTERENUMF_DWFILTERTAG = $00010000;
{-----------------------------------------------------------------------}
{ acmFilterChoose }
{-----------------------------------------------------------------------}
{ MM_ACM_FILTERCHOOSE is sent to hook callbacks by the Filter Chooser }
{ Dialog... }
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
TACMFILTERCHOOSEHOOKPROC = function(hwnd: HWND; uMsg: UINT;
wParam: WPARAM; lParam: LPARAM): UINT;
{$IFDEF WIN32}stdcall;{$ENDIF}
PACMFILTERCHOOSE = ^TACMFILTERCHOOSE;
TACMFILTERCHOOSE = 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 : PChar;
szFilterTag: array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS-1] of Char;
szFilter : array[0..ACMFILTERDETAILS_FILTER_CHARS-1] of Char;
pszName : PChar; { custom name selection }
cchName : DWORD; { size in chars of mem buf for pszName}
fdwEnum : DWORD; { filter enumeration restrictions }
pwfltrEnum : PWAVEFILTER; { filter describing restrictions }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -