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

📄 unamsacmapi.pas

📁 Voice Commnucation Components for Delphi
💻 PAS
📖 第 1 页 / 共 5 页
字号:

//--------------------------------------------------------------------------
//
//  ACM Format Tags
//
const
  {$EXTERNALSYM ACMFORMATTAGDETAILS_FORMATTAG_CHARS }
  ACMFORMATTAGDETAILS_FORMATTAG_CHARS = 48;

type
  pACMFORMATTAGDETAILSA = ^ACMFORMATTAGDETAILSA;
  {$EXTERNALSYM ACMFORMATTAGDETAILSA }
  ACMFORMATTAGDETAILSA = packed record
    cbStruct         : DWORD;
    dwFormatTagIndex : DWORD;
    dwFormatTag      : DWORD;
    cbFormatSize     : DWORD;
    fdwSupport       : DWORD;
    cStandardFormats : DWORD;
    szFormatTag      : array[0..ACMFORMATTAGDETAILS_FORMATTAG_CHARS - 1] of Char;
  end;

  pACMFORMATTAGDETAILSW = ^ACMFORMATTAGDETAILSW;
  {$EXTERNALSYM ACMFORMATTAGDETAILSW }
  ACMFORMATTAGDETAILSW = packed record
    cbStruct         : DWORD;
    dwFormatTagIndex : DWORD;
    dwFormatTag      : DWORD;
    cbFormatSize     : DWORD;
    fdwSupport       : DWORD;
    cStandardFormats : DWORD;
    szFormatTag      : array[0..ACMFORMATTAGDETAILS_FORMATTAG_CHARS - 1] of WChar;
  end;

  {$EXTERNALSYM ACMFORMATTAGDETAILS }
  ACMFORMATTAGDETAILS = ACMFORMATTAGDETAILSA;
  pACMFORMATTAGDETAILS = pACMFORMATTAGDETAILSA;

{$EXTERNALSYM acm_FormatTagDetailsA }
function acm_formatTagDetailsA(had: HACMDRIVER; var paftd: ACMFORMATTAGDETAILSA; fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatTagDetailsW }
function acm_formatTagDetailsW(had: HACMDRIVER; var paftd: ACMFORMATTAGDETAILSW; fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatTagDetails }
function acm_formatTagDetails (had: HACMDRIVER; var paftd: ACMFORMATTAGDETAILS; fdwDetails: DWORD): MMRESULT; stdcall;

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

type
  {$EXTERNALSYM ACMFORMATTAGENUMCBA }
  ACMFORMATTAGENUMCBA = function(hadid: HACMDRIVERID; const paftd: ACMFORMATTAGDETAILSA; dwInstance: DWORD; fdwSupport: DWORD): Windows.BOOL; stdcall;
  {$EXTERNALSYM ACMFORMATTAGENUMCBW }
  ACMFORMATTAGENUMCBW = function(hadid: HACMDRIVERID; const paftd: ACMFORMATTAGDETAILSW; dwInstance: DWORD; fdwSupport: DWORD): Windows.BOOL; stdcall;
  {$EXTERNALSYM ACMFORMATTAGENUMCB }
  ACMFORMATTAGENUMCB = ACMFORMATTAGENUMCBA;

{$EXTERNALSYM acm_FormatTagEnumA }
function acm_formatTagEnumA(had: HACMDRIVER; var paftd: ACMFORMATTAGDETAILSA; fnCallback: ACMFORMATTAGENUMCBA; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatTagEnumW }
function acm_formatTagEnumW(had: HACMDRIVER; var paftd: ACMFORMATTAGDETAILSW; fnCallback: ACMFORMATTAGENUMCBW; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatTagEnum }
function acm_formatTagEnum (had: HACMDRIVER; var paftd: ACMFORMATTAGDETAILS;  fnCallback: ACMFORMATTAGENUMCB; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;

//--------------------------------------------------------------------------;
//
//  ACM Formats
//
const
  {$EXTERNALSYM ACMFORMATDETAILS_FORMAT_CHARS }
  ACMFORMATDETAILS_FORMAT_CHARS   = 128;

type
  pACMFORMATDETAILSA = ^ACMFORMATDETAILSA;
  {$EXTERNALSYM ACMFORMATDETAILSA }
  ACMFORMATDETAILSA = packed record
    cbStruct      : DWORD;
    dwFormatIndex : DWORD;
    dwFormatTag   : DWORD;
    fdwSupport    : DWORD;
    pwfx          : PWAVEFORMATEX;
    cbwfx         : DWORD;
    szFormat      : array[0..ACMFORMATDETAILS_FORMAT_CHARS - 1] of Char;
  end;

  pACMFORMATDETAILSW = ^ACMFORMATDETAILSW;
  {$EXTERNALSYM ACMFORMATDETAILSW }
  ACMFORMATDETAILSW = 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;
  {$EXTERNALSYM ACMFORMATDETAILS }
  ACMFORMATDETAILS = ACMFORMATDETAILSA;

{$EXTERNALSYM acm_FormatDetailsA }
function acm_formatDetailsA(had: HACMDRIVER; var pafd: ACMFORMATDETAILSA; fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatDetailsW }
function acm_formatDetailsW(had: HACMDRIVER; var pafd: ACMFORMATDETAILSW; fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatDetails }
function acm_formatDetails (had: HACMDRIVER; var pafd: ACMFORMATDETAILS; fdwDetails: DWORD): MMRESULT; stdcall;

const
  {$EXTERNALSYM ACM_FORMATDETAILSF_INDEX }
  ACM_FORMATDETAILSF_INDEX        = $00000000;
  {$EXTERNALSYM ACM_FORMATDETAILSF_FORMAT }
  ACM_FORMATDETAILSF_FORMAT       = $00000001;
  {$EXTERNALSYM ACM_FORMATDETAILSF_QUERYMASK }
  ACM_FORMATDETAILSF_QUERYMASK    = $0000000F;

type
  {$EXTERNALSYM ACMFORMATENUMCBA }
  ACMFORMATENUMCBA = function(hadid: HACMDRIVERID; const pafd: ACMFORMATDETAILSA; dwInstance: DWORD; fdwSupport: DWORD): Windows.BOOL; stdcall;
  {$EXTERNALSYM ACMFORMATENUMCBW }
  ACMFORMATENUMCBW = function(hadid: HACMDRIVERID; const pafd: ACMFORMATDETAILSW; dwInstance: DWORD; fdwSupport: DWORD): Windows.BOOL; stdcall;
  {$EXTERNALSYM ACMFORMATENUMCB }
  ACMFORMATENUMCB = ACMFORMATENUMCBA;

{$EXTERNALSYM acm_FormatEnumA }
function acm_formatEnumA(had: HACMDRIVER; var pafd: ACMFORMATDETAILSA; fnCallback: ACMFORMATENUMCBA; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatEnumW }
function acm_formatEnumW(had: HACMDRIVER; var pafd: ACMFORMATDETAILSW; fnCallback: ACMFORMATENUMCBW; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatEnum }
function acm_formatEnum (had: HACMDRIVER; var pafd: ACMFORMATDETAILS;  fnCallback: ACMFORMATENUMCB; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;

const
  {$EXTERNALSYM ACM_FORMATENUMF_WFORMATTAG }
  ACM_FORMATENUMF_WFORMATTAG       = $00010000;
  {$EXTERNALSYM ACM_FORMATENUMF_NCHANNELS }
  ACM_FORMATENUMF_NCHANNELS        = $00020000;
  {$EXTERNALSYM ACM_FORMATENUMF_NSAMPLESPERSEC }
  ACM_FORMATENUMF_NSAMPLESPERSEC   = $00040000;
  {$EXTERNALSYM ACM_FORMATENUMF_WBITSPERSAMPLE }
  ACM_FORMATENUMF_WBITSPERSAMPLE   = $00080000;
  {$EXTERNALSYM ACM_FORMATENUMF_CONVERT }
  ACM_FORMATENUMF_CONVERT          = $00100000;
  {$EXTERNALSYM ACM_FORMATENUMF_SUGGEST }
  ACM_FORMATENUMF_SUGGEST          = $00200000;
  {$EXTERNALSYM ACM_FORMATENUMF_HARDWARE }
  ACM_FORMATENUMF_HARDWARE         = $00400000;
  {$EXTERNALSYM ACM_FORMATENUMF_INPUT }
  ACM_FORMATENUMF_INPUT            = $00800000;
  {$EXTERNALSYM ACM_FORMATENUMF_OUTPUT }
  ACM_FORMATENUMF_OUTPUT           = $01000000;

{$EXTERNALSYM acm_FormatSuggest }
function acm_formatSuggest(had: HACMDRIVER; const pwfxSrc: WAVEFORMATEX; var pwfxDst: WAVEFORMATEX; cbwfxDst: DWORD; fdwSuggest: DWORD): MMRESULT; stdcall;

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

  {$EXTERNALSYM ACM_FORMATSUGGESTF_TYPEMASK }
  ACM_FORMATSUGGESTF_TYPEMASK         = $00FF0000;

  {$EXTERNALSYM ACMHELPMSGSTRINGA }
  ACMHELPMSGSTRINGA       = 'acmchoose_help';
  {$EXTERNALSYM ACMHELPMSGSTRINGW }
  ACMHELPMSGSTRINGW       = 'acmchoose_help';
  {$EXTERNALSYM ACMHELPMSGCONTEXTMENUA }
  ACMHELPMSGCONTEXTMENUA  = 'acmchoose_contextmenu';
  {$EXTERNALSYM ACMHELPMSGCONTEXTMENUW }
  ACMHELPMSGCONTEXTMENUW  = 'acmchoose_contextmenu';
  {$EXTERNALSYM ACMHELPMSGCONTEXTHELPA }
  ACMHELPMSGCONTEXTHELPA  = 'acmchoose_contexthelp';
  {$EXTERNALSYM ACMHELPMSGCONTEXTHELPW }
  ACMHELPMSGCONTEXTHELPW  = 'acmchoose_contexthelp';

  {$EXTERNALSYM ACMHELPMSGSTRING }
  ACMHELPMSGSTRING        = ACMHELPMSGSTRINGA;
  {$EXTERNALSYM ACMHELPMSGCONTEXTMENU }
  ACMHELPMSGCONTEXTMENU   = ACMHELPMSGCONTEXTMENUA;
  {$EXTERNALSYM ACMHELPMSGCONTEXTHELP }
  ACMHELPMSGCONTEXTHELP   = ACMHELPMSGCONTEXTHELPA;

  {$EXTERNALSYM MM_ACM_FORMATCHOOSE }
  MM_ACM_FORMATCHOOSE             = ($8000);

  {$EXTERNALSYM FORMATCHOOSE_MESSAGE }
  FORMATCHOOSE_MESSAGE            = 0;
  {$EXTERNALSYM FORMATCHOOSE_FORMATTAG_VERIFY }
  FORMATCHOOSE_FORMATTAG_VERIFY   = (FORMATCHOOSE_MESSAGE + 0);
  {$EXTERNALSYM FORMATCHOOSE_FORMAT_VERIFY }
  FORMATCHOOSE_FORMAT_VERIFY      = (FORMATCHOOSE_MESSAGE + 1);
  {$EXTERNALSYM FORMATCHOOSE_CUSTOM_VERIFY }
  FORMATCHOOSE_CUSTOM_VERIFY      = (FORMATCHOOSE_MESSAGE + 2);

type
  {$EXTERNALSYM ACMFORMATCHOOSEHOOKPROCA }
  ACMFORMATCHOOSEHOOKPROCA = function(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): UINT; stdcall;
  {$EXTERNALSYM ACMFORMATCHOOSEHOOKPROCW }
  ACMFORMATCHOOSEHOOKPROCW = function(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): UINT; stdcall;
  {$EXTERNALSYM ACMFORMATCHOOSEHOOKPROC }
  ACMFORMATCHOOSEHOOKPROC  = ACMFORMATCHOOSEHOOKPROCA;

  pACMFORMATCHOOSEA = ^ACMFORMATCHOOSEA;
  {$EXTERNALSYM ACMFORMATCHOOSEA }
  ACMFORMATCHOOSEA = 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;

  pACMFORMATCHOOSEW = ^ACMFORMATCHOOSEW;
  {$EXTERNALSYM ACMFORMATCHOOSEW }
  ACMFORMATCHOOSEW = 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;

  {$EXTERNALSYM ACMFORMATCHOOSE }
  ACMFORMATCHOOSE = ACMFORMATCHOOSEA;
  pACMFORMATCHOOSE = pACMFORMATCHOOSEA;

const
  {$EXTERNALSYM ACMFORMATCHOOSE_STYLEF_SHOWHELP }
  ACMFORMATCHOOSE_STYLEF_SHOWHELP              = $00000004;
  {$EXTERNALSYM ACMFORMATCHOOSE_STYLEF_ENABLEHOOK }
  ACMFORMATCHOOSE_STYLEF_ENABLEHOOK            = $00000008;
  {$EXTERNALSYM ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE }
  ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE        = $00000010;
  {$EXTERNALSYM ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE }
  ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE  = $00000020;
  {$EXTERNALSYM ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT }
  ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT       = $00000040;
  {$EXTERNALSYM ACMFORMATCHOOSE_STYLEF_CONTEXTHELP }
  ACMFORMATCHOOSE_STYLEF_CONTEXTHELP           = $00000080;

{$EXTERNALSYM acm_FormatChooseA }
function acm_formatChooseA(var pafmtc: ACMFORMATCHOOSEA): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatChooseW }
function acm_formatChooseW(var pafmtc: ACMFORMATCHOOSEW): MMRESULT; stdcall;
{$EXTERNALSYM acm_FormatChoose }
function acm_formatChoose (var pafmtc: ACMFORMATCHOOSE ): MMRESULT; stdcall;

//--------------------------------------------------------------------------;
//
//  ACM Filter Tags
//
const
  {$EXTERNALSYM ACMFILTERTAGDETAILS_FILTERTAG_CHARS }
  ACMFILTERTAGDETAILS_FILTERTAG_CHARS = 48;

type
  pACMFILTERTAGDETAILSA = ^ACMFILTERTAGDETAILSA;

⌨️ 快捷键说明

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