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

📄 unamsacmapi.pas

📁 Voice Commnucation Components for Delphi
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  {$EXTERNALSYM ACMFILTERTAGDETAILSA }
  ACMFILTERTAGDETAILSA = packed record
    cbStruct         : DWORD;
    dwFilterTagIndex : DWORD;
    dwFilterTag      : DWORD;
    cbFilterSize     : DWORD;
    fdwSupport       : DWORD;
    cStandardFilters : DWORD;
    szFilterTag      : array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS - 1] of Char;
  end;

  pACMFILTERTAGDETAILSW = ^ACMFILTERTAGDETAILSW;
  {$EXTERNALSYM ACMFILTERTAGDETAILSW }
  ACMFILTERTAGDETAILSW = packed record
    cbStruct         : DWORD;
    dwFilterTagIndex : DWORD;
    dwFilterTag      : DWORD;
    cbFilterSize     : DWORD;
    fdwSupport       : DWORD;
    cStandardFilters : DWORD;
    szFilterTag      : array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS - 1] of WChar;
  end;

  {$EXTERNALSYM ACMFILTERTAGDETAILS }
  ACMFILTERTAGDETAILS = ACMFILTERTAGDETAILSA;
  pACMFILTERTAGDETAILS = pACMFILTERTAGDETAILSA;

{$EXTERNALSYM acm_FilterTagDetailsA }
function acm_filterTagDetailsA(had: HACMDRIVER; var paftd: ACMFILTERTAGDETAILSA; fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterTagDetailsW }
function acm_filterTagDetailsW(had: HACMDRIVER; var paftd: ACMFILTERTAGDETAILSW; fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterTagDetails }
function acm_filterTagDetails (had: HACMDRIVER; var paftd: ACMFILTERTAGDETAILS;  fdwDetails: DWORD): MMRESULT; stdcall;

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

type
  {$EXTERNALSYM ACMFILTERTAGENUMCBA }
  ACMFILTERTAGENUMCBA = function(hadid: HACMDRIVERID; const paftd: ACMFILTERTAGDETAILSA; dwInstance: DWORD; fdwSupport: DWORD): Windows.BOOL; stdcall;
  {$EXTERNALSYM ACMFILTERTAGENUMCBW }
  ACMFILTERTAGENUMCBW = function(hadid: HACMDRIVERID; const paftd: ACMFILTERTAGDETAILSW; dwInstance: DWORD; fdwSupport: DWORD): Windows.BOOL; stdcall;
  {$EXTERNALSYM ACMFILTERTAGENUMCB }
  ACMFILTERTAGENUMCB  = ACMFILTERTAGENUMCBA;

{$EXTERNALSYM acm_FilterTagEnumA }
function acm_filterTagEnumA(had: HACMDRIVER; var paftd: ACMFILTERTAGDETAILSA; fnCallback: ACMFILTERTAGENUMCBA; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterTagEnumW }
function acm_filterTagEnumW(had: HACMDRIVER; var paftd: ACMFILTERTAGDETAILSW; fnCallback: ACMFILTERTAGENUMCBW; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterTagEnum }
function acm_filterTagEnum (had: HACMDRIVER; var paftd: ACMFILTERTAGDETAILS;  fnCallback: ACMFILTERTAGENUMCB;  dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;

//--------------------------------------------------------------------------;
//
//  ACM Filters
//
const
  {$EXTERNALSYM ACMFILTERDETAILS_FILTER_CHARS }
  ACMFILTERDETAILS_FILTER_CHARS   = 128;

type
  pACMFILTERDETAILSA = ^ACMFILTERDETAILSA;
  {$EXTERNALSYM ACMFILTERDETAILSA }
  ACMFILTERDETAILSA = packed record
    cbStruct      : DWORD;
    dwFilterIndex : DWORD;
    dwFilterTag   : DWORD;
    fdwSupport    : DWORD;
    pwfltr        : pWAVEFILTER;
    cbwfltr       : DWORD;
    szFilter      : array[0..ACMFILTERDETAILS_FILTER_CHARS - 1] of Char;
  end;

  pACMFILTERDETAILSW = ^ACMFILTERDETAILSW;
  {$EXTERNALSYM ACMFILTERDETAILSW }
  ACMFILTERDETAILSW = packed record
    cbStruct      : DWORD;
    dwFilterIndex : DWORD;
    dwFilterTag   : DWORD;
    fdwSupport    : DWORD;
    pwfltr        : pWAVEFILTER;
    cbwfltr       : DWORD;
    szFilter      : array[0..ACMFILTERDETAILS_FILTER_CHARS - 1] of WChar;
  end;

  {$EXTERNALSYM ACMFILTERDETAILS }
  ACMFILTERDETAILS = ACMFILTERDETAILSA;
  pACMFILTERDETAILS = pACMFILTERDETAILSA;

{$EXTERNALSYM acm_FilterDetailsA }
function acm_filterDetailsA(had: HACMDRIVER; var pafd: ACMFILTERDETAILSA; fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterDetailsW }
function acm_filterDetailsW(had: HACMDRIVER; var pafd: ACMFILTERDETAILSW; fdwDetails: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterDetails }
function acm_filterDetails (had: HACMDRIVER; var pafd: ACMFILTERDETAILS;  fdwDetails: DWORD): MMRESULT; stdcall;

const
  {$EXTERNALSYM ACM_FILTERDETAILSF_INDEX }
  ACM_FILTERDETAILSF_INDEX        = $00000000;
  {$EXTERNALSYM ACM_FILTERDETAILSF_FILTER }
  ACM_FILTERDETAILSF_FILTER       = $00000001;
  {$EXTERNALSYM ACM_FILTERDETAILSF_QUERYMASK }
  ACM_FILTERDETAILSF_QUERYMASK    = $0000000F;

type
  {$EXTERNALSYM ACMFILTERENUMCBA }
  ACMFILTERENUMCBA = function(hadid: hACMDRIVERID; const pafd: ACMFILTERDETAILSA; dwInstance: DWORD; fdwSupport: DWORD): Windows.BOOL; stdcall;
  {$EXTERNALSYM ACMFILTERENUMCBW }
  ACMFILTERENUMCBW = function(hadid: hACMDRIVERID; const pafd: ACMFILTERDETAILSW; dwInstance: DWORD; fdwSupport: DWORD): Windows.BOOL; stdcall;
  {$EXTERNALSYM ACMFILTERENUMCB }
  ACMFILTERENUMCB = ACMFILTERENUMCBA;

{$EXTERNALSYM acm_FilterEnumA }
function acm_filterEnumA(had: HACMDRIVER; var pafd: ACMFILTERDETAILSA; fnCallback: ACMFILTERENUMCBA; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterEnumW }
function acm_filterEnumW(had: HACMDRIVER; var pafd: ACMFILTERDETAILSW; fnCallback: ACMFILTERENUMCBW; dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterEnum }
function acm_filterEnum (had: HACMDRIVER; var pafd: ACMFILTERDETAILS;  fnCallback: ACMFILTERENUMCB;  dwInstance: DWORD; fdwEnum: DWORD): MMRESULT; stdcall;

const
  {$EXTERNALSYM ACM_FILTERENUMF_DWFILTERTAG }
  ACM_FILTERENUMF_DWFILTERTAG	= $00010000;

//
//  MM_ACM_FILTERCHOOSE is sent to hook callbacks by the Filter Chooser
//  Dialog...
//
  {$EXTERNALSYM MM_ACM_FILTERCHOOSE }
  MM_ACM_FILTERCHOOSE          	= ($8000);

  {$EXTERNALSYM FILTERCHOOSE_MESSAGE }
  FILTERCHOOSE_MESSAGE			= 0;
  {$EXTERNALSYM FILTERCHOOSE_FILTERTAG_VERIFY }
  FILTERCHOOSE_FILTERTAG_VERIFY   	= (FILTERCHOOSE_MESSAGE+0);
  {$EXTERNALSYM FILTERCHOOSE_FILTER_VERIFY }
  FILTERCHOOSE_FILTER_VERIFY      	= (FILTERCHOOSE_MESSAGE+1);
  {$EXTERNALSYM FILTERCHOOSE_CUSTOM_VERIFY }
  FILTERCHOOSE_CUSTOM_VERIFY      	= (FILTERCHOOSE_MESSAGE+2);

type
  {$EXTERNALSYM ACMFILTERCHOOSEHOOKPROCA }
  ACMFILTERCHOOSEHOOKPROCA = function(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): UINT; stdcall;
  {$EXTERNALSYM ACMFILTERCHOOSEHOOKPROCW }
  ACMFILTERCHOOSEHOOKPROCW = function(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): UINT; stdcall;
  {$EXTERNALSYM ACMFILTERCHOOSEHOOKPROC }
  ACMFILTERCHOOSEHOOKPROC  = ACMFILTERCHOOSEHOOKPROCA;

  pACMFILTERCHOOSEA = ^ACMFILTERCHOOSEA;
  {$EXTERNALSYM ACMFILTERCHOOSEA }
  ACMFILTERCHOOSEA = 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;

  pACMFILTERCHOOSEW = ^ACMFILTERCHOOSEW;
  {$EXTERNALSYM ACMFILTERCHOOSEW }
  ACMFILTERCHOOSEW = 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;

  {$EXTERNALSYM ACMFILTERCHOOSE }
  ACMFILTERCHOOSE = ACMFILTERCHOOSEA;
  pACMFILTERCHOOSE = pACMFILTERCHOOSEA;

const
//  ACMFILTERCHOOSE.fdwStyle
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_SHOWHELP }
  ACMFILTERCHOOSE_STYLEF_SHOWHELP              = $00000004;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_ENABLEHOOK }
  ACMFILTERCHOOSE_STYLEF_ENABLEHOOK            = $00000008;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE }
  ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE        = $00000010;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE }
  ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE  = $00000020;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT }
  ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT    = $00000040;
  {$EXTERNALSYM ACMFILTERCHOOSE_STYLEF_CONTEXTHELP }
  ACMFILTERCHOOSE_STYLEF_CONTEXTHELP           = $00000080;

{$EXTERNALSYM acm_FilterChooseA }
function acm_filterChooseA(var pafltrc: ACMFILTERCHOOSEA): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterChooseW }
function acm_filterChooseW(var pafltrc: ACMFILTERCHOOSEW): MMRESULT; stdcall;
{$EXTERNALSYM acm_FilterChoose }
function acm_filterChoose (var pafltrc: ACMFILTERCHOOSE): MMRESULT; stdcall;

//--------------------------------------------------------------------------;
//
//  ACM Stream API's

type
  pACMSTREAMHEADER = ^ACMSTREAMHEADER;
  {$EXTERNALSYM ACMSTREAMHEADER }
  ACMSTREAMHEADER = 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.fdwStatus
//
//  ACMSTREAMHEADER_STATUSF_DONE: done bit for async conversions.
  {$EXTERNALSYM ACMSTREAMHEADER_STATUSF_DONE }
  ACMSTREAMHEADER_STATUSF_DONE     = $00010000;
  {$EXTERNALSYM ACMSTREAMHEADER_STATUSF_PREPARED }
  ACMSTREAMHEADER_STATUSF_PREPARED = $00020000;
  {$EXTERNALSYM ACMSTREAMHEADER_STATUSF_INQUEUE }
  ACMSTREAMHEADER_STATUSF_INQUEUE  = $00100000;

  {$EXTERNALSYM ACM_STREAMOPENF_QUERY }
  ACM_STREAMOPENF_QUERY           = $00000001;
  {$EXTERNALSYM ACM_STREAMOPENF_ASYNC }
  ACM_STREAMOPENF_ASYNC           = $00000002;
  {$EXTERNALSYM ACM_STREAMOPENF_NONREALTIME }
  ACM_STREAMOPENF_NONREALTIME     = $00000004;

  {$EXTERNALSYM ACM_STREAMSIZEF_SOURCE }
  ACM_STREAMSIZEF_SOURCE          = $00000000;
  {$EXTERNALSYM ACM_STREAMSIZEF_DESTINATION }
  ACM_STREAMSIZEF_DESTINATION     = $00000001;
  {$EXTERNALSYM ACM_STREAMSIZEF_QUERYMASK }
  ACM_STREAMSIZEF_QUERYMASK       = $0000000F;

  {$EXTERNALSYM ACM_STREAMCONVERTF_BLOCKALIGN }
  ACM_STREAMCONVERTF_BLOCKALIGN   = $00000004;
  {$EXTERNALSYM ACM_STREAMCONVERTF_START }
  ACM_STREAMCONVERTF_START        = $00000010;
  {$EXTERNALSYM ACM_STREAMCONVERTF_END }
  ACM_STREAMCONVERTF_END          = $00000020;

{$EXTERNALSYM acm_StreamOpen }
function acm_streamOpen(phas: pHACMSTREAM; had: HACMDRIVER; pwfxSrc: pWAVEFORMATEX; pwfxdst: pWAVEFORMATEX; pwfltr: pWAVEFILTER; dwCallback: DWORD; dwInstance: DWORD; fdwOpen: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_StreamClose }
function acm_streamClose(has: HACMSTREAM; fdwClose: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_StreamSize }
function acm_streamSize(has: HACMSTREAM; cbInput: DWORD; var pdwOutputByte: DWORD; fdwSize: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_StreamReset }
function acm_streamReset(has: HACMSTREAM; fdwReset: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_StreamMessage }
function acm_streamMessage(has: HACMSTREAM; uMsg: UINT; lParam1: LPARAM; lParam2: LPARAM): MMRESULT; stdcall;
{$EXTERNALSYM acm_StreamConvert }
function acm_streamConvert(has: HACMSTREAM; var pash: ACMSTREAMHEADER; fdwConvert: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_StreamPrepareHeader }
function acm_streamPrepareHeader(has: HACMSTREAM; var pash: ACMSTREAMHEADER; fdwPrepare: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acm_StreamUnprepareHeader }

⌨️ 快捷键说明

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