acmFilterEnumA 函数 (msacm.h)

acmFilterEnum 函数枚举可用于 ACM 驱动程序中给定筛选器标记的波形音频筛选器。 此函数继续枚举,直到没有更适合筛选标记的筛选器或回调函数返回 FALSE

语法

MMRESULT ACMAPI acmFilterEnumA(
  HACMDRIVER          had,
  LPACMFILTERDETAILSA pafd,
  ACMFILTERENUMCBA    fnCallback,
  DWORD_PTR           dwInstance,
  DWORD               fdwEnum
);

参数

had

用于查询波形音频筛选器详细信息的 ACM 驱动程序的句柄。 如果此参数 NULL,ACM 将使用第一个合适的 ACM 驱动程序中的详细信息。

pafd

指向 ACMFILTERDETAILS 结构的指针,该结构在传递给由 fnCallback指定的函数时包含筛选器详细信息。 当应用程序 acmFilterEnum时,必须初始化此结构的 cbStructpwfltr,以及 cbwfltr 成员。 还必须将 dwFilterTag 成员初始化为WAVE_FILTER_UNKNOWN或有效的筛选器标记。

fnCallback

应用程序定义的回调函数的过程实例地址。

dwInstance

一个 32 位(DWORD)、64 位(DWORD_PTR)应用程序定义值,该值传递给回调函数以及 ACM 筛选器详细信息。

fdwEnum

用于枚举给定筛选器标记的筛选器的标志。 定义了以下值。

[ACMFILTERDETAILS](./nf-msacm-acmfilterdetails.md) 结构有效。 枚举器将仅枚举符合此属性的筛选器。 ACMFILTERDETAILS 结构的 dwFilterTag 成员必须与 WAVEFILTER 结构的 dwFilterTag 成员相等。
价值 意义
ACM_FILTERENUMF_DWFILTERTAG

返回值

如果成功或错误,则返回零。 可能的错误值包括以下内容。

返回代码 描述
ACMERR_NOTPOSSIBLE
无法返回筛选器的详细信息。
MMSYSERR_INVALFLAG
至少有一个标志无效。
MMSYSERR_INVALHANDLE
指定的句柄无效。
MMSYSERR_INVALPARAM
至少有一个参数无效。

言论

如果未安装合适的 ACM 驱动程序,acmFilterEnum 函数将返回MMSYSERR_NOERROR(零)。 此外,不会调用回调函数。

不应从回调函数中调用以下函数:acmDriverAddacmDriverRemoveacmDriverPriority

注意

msacm.h 标头将 acmFilterEnum 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 msacm.h
Msacm32.lib
DLL Msacm32.dll

另请参阅

音频压缩函数

音频压缩管理器