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

📄 msacm.pas

📁 完美acm语音(audio)delphi开发控件: znACM ver5.1 完美的封装了微软的 acm 语音相关的函数
💻 PAS
📖 第 1 页 / 共 3 页
字号:
	end;

type
	TACMFORMATTAGDETAILS = TACMFORMATTAGDETAILSA;
	PACMFORMATTAGDETAILS = PACMFORMATTAGDETAILSA;

function acmFormatTagDetailsA(had : HACMDRIVER; var paftd : TACMFORMATTAGDETAILSA; fdwDetails : DWORD) : MMRESULT; stdcall;

function acmFormatTagDetailsW(had : HACMDRIVER; var paftd : TACMFORMATTAGDETAILSW; fdwDetails : DWORD) : MMRESULT; stdcall;

function acmFormatTagDetails(had : HACMDRIVER; var paftd : TACMFORMATTAGDETAILS; fdwDetails : DWORD) : MMRESULT; stdcall;

const
	ACM_FORMATTAGDETAILSF_INDEX         = $00000000;
	ACM_FORMATTAGDETAILSF_FORMATTAG     = $00000001;
	ACM_FORMATTAGDETAILSF_LARGESTSIZE   = $00000002;
	ACM_FORMATTAGDETAILSF_QUERYMASK     = $0000000F;

type
	ACMFORMATTAGENUMCBA = function(hadid : HACMDRIVERID; const paftd : TACMFORMATTAGDETAILSA; dwInstance : DWORD; fdwSupport : DWORD) : BOOL; stdcall;

function acmFormatTagEnumA(had : HACMDRIVER; var paftd : TACMFORMATTAGDETAILSA; fnCallback : ACMFORMATTAGENUMCBA; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;

type
	ACMFORMATTAGENUMCBW = function(hadid : HACMDRIVERID; const paftd : TACMFORMATTAGDETAILSW; dwInstance : DWORD; fdwSupport : DWORD) : BOOL; stdcall;

function acmFormatTagEnumW(had : HACMDRIVER; var paftd : TACMFORMATTAGDETAILSW; fnCallback : ACMFORMATTAGENUMCBW; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;

type
	ACMFORMATTAGENUMCB = ACMFORMATTAGENUMCBA;

function acmFormatTagEnum(had : HACMDRIVER; var paftd : TACMFORMATTAGDETAILS; fnCallback : ACMFORMATTAGENUMCB; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;

const
	ACMFORMATDETAILS_FORMAT_CHARS   = 128;

type
	PACMFORMATDETAILSA = ^TACMFORMATDETAILSA;
	TACMFORMATDETAILSA = packed record
		cbStruct      : DWORD;
		dwFormatIndex : DWORD;
		dwFormatTag   : DWORD;
		fdwSupport    : DWORD;
		pwfx          : PWAVEFORMATEX;
		cbwfx         : DWORD;
		szFormat      : array[0..ACMFORMATDETAILS_FORMAT_CHARS-1] of char;
	end;

type
	PACMFORMATDETAILSW = ^TACMFORMATDETAILSW;
	TACMFORMATDETAILSW = packed record
		cbStruct      : DWORD;
		dwFormatIndex : DWORD;
		dwFormatTag   : DWORD;
		fdwSupport    : DWORD;
		pwfx          : PWAVEFORMATEX;
		cbwfx         : DWORD;
		szFormat      : array[0..ACMFORMATDETAILS_FORMAT_CHARS-1] of wchar;
	end;

type
	PACMFORMATDETAILS = PACMFORMATDETAILSA;
	TACMFORMATDETAILS = TACMFORMATDETAILSA;

function acmFormatDetailsA(had : HACMDRIVER; var pafd : TACMFORMATDETAILSA; fdwDetails : DWORD) : MMRESULT; stdcall;

function acmFormatDetailsW(had : HACMDRIVER; var pafd : TACMFORMATDETAILSW; fdwDetails : DWORD) : MMRESULT; stdcall;

function acmFormatDetails(had : HACMDRIVER; var pafd : TACMFORMATDETAILS; fdwDetails : DWORD) : MMRESULT; stdcall;

const
	ACM_FORMATDETAILSF_INDEX        = $00000000;
	ACM_FORMATDETAILSF_FORMAT       = $00000001;
	ACM_FORMATDETAILSF_QUERYMASK    = $0000000F;

type
	ACMFORMATENUMCBA = function(hadid : HACMDRIVERID; const pafd : TACMFORMATDETAILSA; dwInstance : DWORD; fdwSupport : DWORD) : BOOL; stdcall;

function acmFormatEnumA(had : HACMDRIVER; var pafd : TACMFORMATDETAILSA; fnCallback : ACMFORMATENUMCBA; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;

type
	ACMFORMATENUMCBW = function(hadid : HACMDRIVERID; const pafd : TACMFORMATDETAILSW; dwInstance : DWORD; fdwSupport : DWORD) : BOOL; stdcall;

function acmFormatEnumW(had : HACMDRIVER; var pafd : TACMFORMATDETAILSW; fnCallback : ACMFORMATENUMCBW; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;

type
	ACMFORMATENUMCB = ACMFORMATENUMCBA;

function acmFormatEnum(had : HACMDRIVER; var pafd : TACMFORMATDETAILS; fnCallback : ACMFORMATENUMCB; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;

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;

function acmFormatSuggest(had : HACMDRIVER; const pwfxSrc : TWAVEFORMATEX; var pwfxDst : TWAVEFORMATEX; cbwfxDst : DWORD; fdwSuggest : DWORD) : MMRESULT; stdcall;

const
	ACM_FORMATSUGGESTF_WFORMATTAG       = $00010000;
	ACM_FORMATSUGGESTF_NCHANNELS        = $00020000;
	ACM_FORMATSUGGESTF_NSAMPLESPERSEC   = $00040000;
	ACM_FORMATSUGGESTF_WBITSPERSAMPLE   = $00080000;

	ACM_FORMATSUGGESTF_TYPEMASK         = $00FF0000;

const
	ACMHELPMSGSTRINGA       = 'acmchoose_help';
	ACMHELPMSGSTRINGW       = 'acmchoose_help';
	ACMHELPMSGCONTEXTMENUA  = 'acmchoose_contextmenu';
	ACMHELPMSGCONTEXTMENUW  = 'acmchoose_contextmenu';
	ACMHELPMSGCONTEXTHELPA  = 'acmchoose_contexthelp';
	ACMHELPMSGCONTEXTHELPW  = 'acmchoose_contexthelp';

const
	ACMHELPMSGSTRING        = ACMHELPMSGSTRINGA;
	ACMHELPMSGCONTEXTMENU   = ACMHELPMSGCONTEXTMENUA;
	ACMHELPMSGCONTEXTHELP   = ACMHELPMSGCONTEXTHELPA;

const
	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
	ACMFORMATCHOOSEHOOKPROCA = function(hwnd : HWND; uMsg : UINT; wParam : WPARAM; lParam : LPARAM) : UINT; stdcall;

type
	ACMFORMATCHOOSEHOOKPROCW = function(hwnd : HWND; uMsg : UINT; wParam : WPARAM; lParam : LPARAM) : UINT; stdcall;

type
	ACMFORMATCHOOSEHOOKPROC = ACMFORMATCHOOSEHOOKPROCA;

type
	PACMFORMATCHOOSEA = ^TACMFORMATCHOOSEA;
	TACMFORMATCHOOSEA = packed 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        : LPCSTR          ;            // dialog box title bar

		szFormatTag     : array[0..ACMFORMATTAGDETAILS_FORMATTAG_CHARS-1] of char;
		szFormat        : array[0..ACMFORMATDETAILS_FORMAT_CHARS-1] of char;

		pszName         : LPSTR           ;            // 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 : LPCSTR          ;            // custom template name
		lCustData       : LPARAM          ;            // data passed to hook fn.
		pfnHook         : ACMFORMATCHOOSEHOOKPROCA ;   // ptr to hook function
	end;

type
	PACMFORMATCHOOSEW = ^TACMFORMATCHOOSEW;
	TACMFORMATCHOOSEW = packed 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        : LPCWSTR         ;            // dialog box title bar

		szFormatTag     : array[0..ACMFORMATTAGDETAILS_FORMATTAG_CHARS-1] of wchar;
		szFormat        : array[0..ACMFORMATDETAILS_FORMAT_CHARS-1] of wchar;

		pszName         : LPWSTR          ;            // 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 : LPCWSTR         ;            // custom template name
		lCustData       : LPARAM          ;            // data passed to hook fn.
		pfnHook         : ACMFORMATCHOOSEHOOKPROCW ;   // ptr to hook function
	end;

type
	TACMFORMATCHOOSE    = TACMFORMATCHOOSEA;
	PACMFORMATCHOOSE    = PACMFORMATCHOOSEA;

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;

function acmFormatChooseA(var pafmtc : TACMFORMATCHOOSEA) : MMRESULT; stdcall;

function acmFormatChooseW(var pafmtc : TACMFORMATCHOOSEW) : MMRESULT; stdcall;

function acmFormatChoose(var pafmtc : TACMFORMATCHOOSE) : MMRESULT; stdcall;

const
	ACMFILTERTAGDETAILS_FILTERTAG_CHARS = 48;

type
	PACMFILTERTAGDETAILSA = ^TACMFILTERTAGDETAILSA;
	TACMFILTERTAGDETAILSA = packed record
		cbStruct         : DWORD           ;
		dwFilterTagIndex : DWORD           ;
		dwFilterTag      : DWORD           ;
		cbFilterSize     : DWORD           ;
		fdwSupport       : DWORD           ;
		cStandardFilters : DWORD           ;
		szFilterTag      : array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS-1] of char;
	end;

type
	PACMFILTERTAGDETAILSW = ^TACMFILTERTAGDETAILSW;
	TACMFILTERTAGDETAILSW = packed record
		cbStruct         : DWORD           ;
		dwFilterTagIndex : DWORD           ;
		dwFilterTag      : DWORD           ;
		cbFilterSize     : DWORD           ;
		fdwSupport       : DWORD           ;
		cStandardFilters : DWORD           ;
		szFilterTag      : array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS-1] of wchar;
	end;

type
	PACMFILTERTAGDETAILS = PACMFILTERTAGDETAILSA;
	TACMFILTERTAGDETAILS = TACMFILTERTAGDETAILSA;

function acmFilterTagDetailsA(had : HACMDRIVER; var paftd : TACMFILTERTAGDETAILSA; fdwDetails : DWORD) : MMRESULT; stdcall;

function acmFilterTagDetailsW(had : HACMDRIVER; var paftd : TACMFILTERTAGDETAILSW; fdwDetails : DWORD) : MMRESULT; stdcall;

function acmFilterTagDetails(had : HACMDRIVER; var paftd : TACMFILTERTAGDETAILS; fdwDetails : DWORD) : MMRESULT; stdcall;

const
	ACM_FILTERTAGDETAILSF_INDEX         = $00000000;
	ACM_FILTERTAGDETAILSF_FILTERTAG     = $00000001;
	ACM_FILTERTAGDETAILSF_LARGESTSIZE   = $00000002;
	ACM_FILTERTAGDETAILSF_QUERYMASK     = $0000000F;

type
	ACMFILTERTAGENUMCBA = function(hadid : HACMDRIVERID; const paftd : TACMFILTERTAGDETAILSA; dwInstance : DWORD; fdwSupport : DWORD) : BOOL; stdcall;

function acmFilterTagEnumA(had : HACMDRIVER; var paftd : TACMFILTERTAGDETAILSA; fnCallback : ACMFILTERTAGENUMCBA; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;

type
	ACMFILTERTAGENUMCBW = function(hadid : HACMDRIVERID; const paftd : TACMFILTERTAGDETAILSW; dwInstance : DWORD; fdwSupport : DWORD) : BOOL; stdcall;

function acmFilterTagEnumW(had : HACMDRIVER; var paftd : TACMFILTERTAGDETAILSW; fnCallback : ACMFILTERTAGENUMCBW; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;

type
	ACMFILTERTAGENUMCB = ACMFILTERTAGENUMCBA;

function acmFilterTagEnum(had : HACMDRIVER; var paftd : TACMFILTERTAGDETAILS; fnCallback : ACMFILTERTAGENUMCB; dwInstance : DWORD; fdwEnum : DWORD) : MMRESULT; stdcall;

const
	ACMFILTERDETAILS_FILTER_CHARS   = 128;

type
	PACMFILTERDETAILSA = ^TACMFILTERDETAILSA;
	TACMFILTERDETAILSA = packed record
		cbStruct      : DWORD           ;
		dwFilterIndex : DWORD           ;
		dwFilterTag   : DWORD           ;
		fdwSupport    : DWORD           ;
		pwfltr        : PWAVEFILTER     ;
		cbwfltr       : DWORD           ;
		szFilter      : array[0..ACMFILTERDETAILS_FILTER_CHARS-1] of char;

⌨️ 快捷键说明

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