📄 headers.pas
字号:
const
ACMDM_USER = DRV_USER + $0000;
{$EXTERNALSYM ACMDM_USER}
ACMDM_RESERVED_LOW = DRV_USER + $2000;
{$EXTERNALSYM ACMDM_RESERVED_LOW}
ACMDM_RESERVED_HIGH = DRV_USER + $2FFF;
{$EXTERNALSYM ACMDM_RESERVED_HIGH}
ACMDM_BASE = ACMDM_RESERVED_LOW;
{$EXTERNALSYM ACMDM_BASE}
ACMDM_DRIVER_ABOUT = ACMDM_BASE + 11;
{$EXTERNALSYM ACMDM_DRIVER_ABOUT}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
// acmDriverPriority
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
function acmDriverPriority(hadid: HACMDRIVERID; dwPriority, fdwPriority: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmDriverPriority}
const
ACM_DRIVERPRIORITYF_ENABLE = $00000001;
{$EXTERNALSYM ACM_DRIVERPRIORITYF_ENABLE}
ACM_DRIVERPRIORITYF_DISABLE = $00000002;
{$EXTERNALSYM ACM_DRIVERPRIORITYF_DISABLE}
ACM_DRIVERPRIORITYF_ABLEMASK = $00000003;
{$EXTERNALSYM ACM_DRIVERPRIORITYF_ABLEMASK}
ACM_DRIVERPRIORITYF_BEGIN = $00010000;
{$EXTERNALSYM ACM_DRIVERPRIORITYF_BEGIN}
ACM_DRIVERPRIORITYF_END = $00020000;
{$EXTERNALSYM ACM_DRIVERPRIORITYF_END}
ACM_DRIVERPRIORITYF_DEFERMASK = $00030000;
{$EXTERNALSYM ACM_DRIVERPRIORITYF_DEFERMASK}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
// acmDriverDetails()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
// ACMDRIVERDETAILS
//
// the ACMDRIVERDETAILS structure is used to get various capabilities from
// an ACM driver (codec, converter, filter).
//
const
ACMDRIVERDETAILS_SHORTNAME_CHARS = 32;
{$EXTERNALSYM ACMDRIVERDETAILS_SHORTNAME_CHARS}
ACMDRIVERDETAILS_LONGNAME_CHARS = 128;
{$EXTERNALSYM ACMDRIVERDETAILS_LONGNAME_CHARS}
ACMDRIVERDETAILS_COPYRIGHT_CHARS = 80;
{$EXTERNALSYM ACMDRIVERDETAILS_COPYRIGHT_CHARS}
ACMDRIVERDETAILS_LICENSING_CHARS = 128;
{$EXTERNALSYM ACMDRIVERDETAILS_LICENSING_CHARS}
ACMDRIVERDETAILS_FEATURES_CHARS = 512;
{$EXTERNALSYM ACMDRIVERDETAILS_FEATURES_CHARS}
type
PAcmDriverDetailsA = ^TAcmDriverDetailsA;
PAcmDriverDetailsW = ^TAcmDriverDetailsW;
PAcmDriverDetails = PAcmDriverDetailsA;
_ACMDRIVERDETAILSA = packed record
cbStruct: DWORD;
fccType: FOURCC;
fccComp: FOURCC;
wMid: Word;
wPid: Word;
vdwACM: DWORD;
vdwDriver: DWORD;
fdwSupport: DWORD;
cFormatTags: DWORD;
cFilterTags: DWORD;
hicon: HICON;
szShortName: array [0..ACMDRIVERDETAILS_SHORTNAME_CHARS - 1] of AnsiChar;
szLongName: array [0..ACMDRIVERDETAILS_LONGNAME_CHARS - 1] of AnsiChar;
szCopyright: array [0..ACMDRIVERDETAILS_COPYRIGHT_CHARS - 1] of AnsiChar;
szLicensing: array [0..ACMDRIVERDETAILS_LICENSING_CHARS - 1] of AnsiChar;
szFeatures: array [0..ACMDRIVERDETAILS_FEATURES_CHARS - 1] of AnsiChar;
end;
{$EXTERNALSYM _ACMDRIVERDETAILSA}
_ACMDRIVERDETAILSW = packed record
cbStruct: DWORD;
fccType: FOURCC;
fccComp: FOURCC;
wMid: Word;
wPid: Word;
vdwACM: DWORD;
vdwDriver: DWORD;
fdwSupport: DWORD;
cFormatTags: DWORD;
cFilterTags: DWORD;
hicon: HICON;
szShortName: array [0..ACMDRIVERDETAILS_SHORTNAME_CHARS - 1] of WideChar;
szLongName: array [0..ACMDRIVERDETAILS_LONGNAME_CHARS - 1] of WideChar;
szCopyright: array [0..ACMDRIVERDETAILS_COPYRIGHT_CHARS - 1] of WideChar;
szLicensing: array [0..ACMDRIVERDETAILS_LICENSING_CHARS - 1] of WideChar;
szFeatures: array [0..ACMDRIVERDETAILS_FEATURES_CHARS - 1] of WideChar;
end;
{$EXTERNALSYM _ACMDRIVERDETAILSW}
_ACMDRIVERDETAILS = _ACMDRIVERDETAILSA;
TAcmDriverDetailsA = _ACMDRIVERDETAILSA;
TAcmDriverDetailsW = _ACMDRIVERDETAILSW;
TAcmDriverDetails = TAcmDriverDetailsA;
//
// ACMDRIVERDETAILS.fccType
//
// ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC: the FOURCC used in the fccType
// field of the ACMDRIVERDETAILS structure to specify that this is an ACM
// codec designed for audio.
//
//
// ACMDRIVERDETAILS.fccComp
//
// ACMDRIVERDETAILS_FCCCOMP_UNDEFINED: the FOURCC used in the fccComp
// field of the ACMDRIVERDETAILS structure. this is currently an unused
// field.
//
const
ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC = $63647561; // 'audc';
{$EXTERNALSYM ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC}
ACMDRIVERDETAILS_FCCCOMP_UNDEFINED = 0; // '0000';
{$EXTERNALSYM ACMDRIVERDETAILS_FCCCOMP_UNDEFINED}
//
// the following flags are used to specify the type of conversion(s) that
// the converter/codec/filter supports. these are placed in the fdwSupport
// field of the ACMDRIVERDETAILS structure. note that a converter can
// support one or more of these flags in any combination.
//
// ACMDRIVERDETAILS_SUPPORTF_CODEC: this flag is set if the driver supports
// conversions from one format tag to another format tag. for example, if a
// converter compresses WAVE_FORMAT_PCM to WAVE_FORMAT_ADPCM, then this bit
// should be set.
//
// ACMDRIVERDETAILS_SUPPORTF_CONVERTER: this flags is set if the driver
// supports conversions on the same format tag. as an example, the PCM
// converter that is built into the ACM sets this bit (and only this bit)
// because it converts only PCM formats (bits, sample rate).
//
// ACMDRIVERDETAILS_SUPPORTF_FILTER: this flag is set if the driver supports
// transformations on a single format. for example, a converter that changed
// the 'volume' of PCM data would set this bit. 'echo' and 'reverb' are
// also filter types.
//
// ACMDRIVERDETAILS_SUPPORTF_HARDWARE: this flag is set if the driver supports
// hardware input and/or output through a waveform device.
//
// ACMDRIVERDETAILS_SUPPORTF_ASYNC: this flag is set if the driver supports
// async conversions.
//
//
// ACMDRIVERDETAILS_SUPPORTF_LOCAL: this flag is set _by the ACM_ if a
// driver has been installed local to the current task. this flag is also
// set in the fdwSupport argument to the enumeration callback function
// for drivers.
//
// ACMDRIVERDETAILS_SUPPORTF_DISABLED: this flag is set _by the ACM_ if a
// driver has been disabled. this flag is also passed set in the fdwSupport
// argument to the enumeration callback function for drivers.
//
const
ACMDRIVERDETAILS_SUPPORTF_CODEC = $00000001;
{$EXTERNALSYM ACMDRIVERDETAILS_SUPPORTF_CODEC}
ACMDRIVERDETAILS_SUPPORTF_CONVERTER = $00000002;
{$EXTERNALSYM ACMDRIVERDETAILS_SUPPORTF_CONVERTER}
ACMDRIVERDETAILS_SUPPORTF_FILTER = $00000004;
{$EXTERNALSYM ACMDRIVERDETAILS_SUPPORTF_FILTER}
ACMDRIVERDETAILS_SUPPORTF_HARDWARE = $00000008;
{$EXTERNALSYM ACMDRIVERDETAILS_SUPPORTF_HARDWARE}
ACMDRIVERDETAILS_SUPPORTF_ASYNC = $00000010;
{$EXTERNALSYM ACMDRIVERDETAILS_SUPPORTF_ASYNC}
ACMDRIVERDETAILS_SUPPORTF_LOCAL = $40000000;
{$EXTERNALSYM ACMDRIVERDETAILS_SUPPORTF_LOCAL}
ACMDRIVERDETAILS_SUPPORTF_DISABLED = $80000000;
{$EXTERNALSYM ACMDRIVERDETAILS_SUPPORTF_DISABLED}
function acmDriverDetailsA(hadid: HACMDRIVERID; var padd: TAcmDriverDetailsA;
fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmDriverDetailsA}
function acmDriverDetailsW(hadid: HACMDRIVERID; var padd: TAcmDriverDetailsW;
fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmDriverDetailsW}
function acmDriverDetails(hadid: HACMDRIVERID; var padd: TAcmDriverDetails;
fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmDriverDetails}
//--------------------------------------------------------------------------;
//
// ACM Format Tags
//
//--------------------------------------------------------------------------;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
// acmFormatTagDetails()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
const
ACMFORMATTAGDETAILS_FORMATTAG_CHARS = 48;
{$EXTERNALSYM ACMFORMATTAGDETAILS_FORMATTAG_CHARS}
type
PAcmFormatTagDetailsA = ^TAcmFormatTagDetailsA;
PAcmFormatTagDetailsW = ^TAcmFormatTagDetailsW;
PAcmFormatTagDetails = PAcmFormatTagDetailsA;
_ACMFORMATTAGDETAILSA = packed record
cbStruct: DWORD;
dwFormatTagIndex: DWORD;
dwFormatTag: DWORD;
cbFormatSize: DWORD;
fdwSupport: DWORD;
cStandardFormats: DWORD;
szFormatTag: array [0..ACMFORMATTAGDETAILS_FORMATTAG_CHARS - 1] of AnsiChar;
end;
{$EXTERNALSYM _ACMFORMATTAGDETAILSA}
_ACMFORMATTAGDETAILSW = packed record
cbStruct: DWORD;
dwFormatTagIndex: DWORD;
dwFormatTag: DWORD;
cbFormatSize: DWORD;
fdwSupport: DWORD;
cStandardFormats: DWORD;
szFormatTag: array [0..ACMFORMATTAGDETAILS_FORMATTAG_CHARS - 1] of WideChar;
end;
{$EXTERNALSYM _ACMFORMATTAGDETAILSW}
_ACMFORMATTAGDETAILS = _ACMFORMATTAGDETAILSA;
TAcmFormatTagDetailsA = _ACMFORMATTAGDETAILSA;
TAcmFormatTagDetailsW = _ACMFORMATTAGDETAILSW;
TAcmFormatTagDetails = TAcmFormatTagDetailsA;
function acmFormatTagDetailsA(had: HACMDRIVER; var paftd: TAcmFormatTagDetailsA;
fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFormatTagDetailsA}
function acmFormatTagDetailsW(had: HACMDRIVER; var paftd: TAcmFormatTagDetailsW;
fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFormatTagDetailsW}
function acmFormatTagDetails(had: HACMDRIVER; var paftd: TAcmFormatTagDetails;
fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFormatTagDetails}
const
ACM_FORMATTAGDETAILSF_INDEX = $00000000;
{$EXTERNALSYM ACM_FORMATTAGDETAILSF_INDEX}
ACM_FORMATTAGDETAILSF_FORMATTAG = $00000001;
{$EXTERNALSYM ACM_FORMATTAGDETAILSF_FORMATTAG}
ACM_FORMATTAGDETAILSF_LARGESTSIZE = $00000002;
{$EXTERNALSYM ACM_FORMATTAGDETAILSF_LARGESTSIZE}
ACM_FORMATTAGDETAILSF_QUERYMASK = $0000000F;
{$EXTERNALSYM ACM_FORMATTAGDETAILSF_QUERYMASK}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
// acmFormatTagEnum()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
type
ACMFORMATTAGENUMCBA = function (hadid: HACMDRIVERID; paftd: PAcmFormatTagDetailsA;
dwInstance: DWORD; fdwSupport: DWORD): BOOL; stdcall;
{$EXTERNALSYM ACMFORMATTAGENUMCBA}
ACMFORMATTAGENUMCBW = function (hadid: HACMDRIVERID; paftd: PAcmFormatTagDetailsW;
dwInstance: DWORD; fdwSupport: DWORD): BOOL; stdcall;
{$EXTERNALSYM ACMFORMATTAGENUMCBW}
ACMFORMATTAGENUMCB = ACMFORMATTAGENUMCBA;
function acmFormatTagEnumA(had: HACMDRIVER; var paftd: TAcmFormatTagDetailsA;
fnCallback: ACMFORMATTAGENUMCBA; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFormatTagEnumA}
function acmFormatTagEnumW(had: HACMDRIVER; var paftd: TAcmFormatTagDetailsW;
fnCallback: ACMFORMATTAGENUMCBW; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFormatTagEnumW}
function acmFormatTagEnum(had: HACMDRIVER; var paftd: TAcmFormatTagDetails;
fnCallback: ACMFORMATTAGENUMCB; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFormatTagEnum}
//--------------------------------------------------------------------------;
//
// ACM Formats
//
//--------------------------------------------------------------------------;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
//
// acmFormatDetails()
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;
const
ACMFORMATDETAILS_FORMAT_CHARS = 128;
{$EXTERNALSYM ACMFORMATDETAILS_FORMAT_CHARS}
type
PAcmFormatDetailsA = ^TAcmFormatDetailsA;
PAcmFormatDetailsW = ^TAcmFormatDetailsW;
PAcmFormatDetails = PAcmFormatDetailsA;
_ACMFORMATDETAILSA = packed record
cbStruct: DWORD;
dwFormatIndex: DWORD;
dwFormatTag: DWORD;
fdwSupport: DWORD;
pwfx: PWAVEFORMATEX;
cbwfx: DWORD;
szFormat: array [0..ACMFORMATDETAILS_FORMAT_CHARS - 1] of AnsiChar;
end;
{$EXTERNALSYM _ACMFORMATDETAILSA}
_ACMFORMATDETAILSW = packed record
cbStruct: DWORD;
dwFormatIndex: DWORD;
dwFormatTag: DWORD;
fdwSupport: DWORD;
pwfx: PWAVEFORMATEX;
cbwfx: DWORD;
szFormat: array [0..ACMFORMATDETAILS_FORMAT_CHARS - 1] of WideChar;
end;
{$EXTERNALSYM _ACMFORMATDETAILSW}
_ACMFORMATDETAILS = _ACMFORMATDETAILSA;
TAcmFormatDetailsA = _ACMFORMATDETAILSA;
TAcmFormatDetailsW = _ACMFORMATDETAILSW;
TAcmFormatDetails = TAcmFormatDetailsA;
function acmFormatDetailsA(had: HACMDRIVER; var pafd: TAcmFormatDetailsA;
fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFormatDetailsA}
function acmFormatDetailsW(had: HACMDRIVER; var pafd: TAcmFormatDetailsW;
fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFormatDetailsW}
function acmFormatDetails(had: HACMDRIVER; var pafd: TAcmFormatDetails;
fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmFormatDetails}
const
ACM_FORMATDETAILSF_INDEX = $00000000;
{$EXTERNALSYM ACM_FORMATDETAILSF_INDEX}
ACM_FORMATDETAILSF_FORMAT = $00000001;
{$EXTERNALSYM ACM_FORMATDETAILSF_FORMAT}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -