此方法与 Windows Vista 音频引擎协商,以建立音频数据流的数据格式。
语法
HRESULT IsInputFormatSupported(
  [in, optional]  IAudioMediaType *pOppositeFormat,
  [in, optional]  IAudioMediaType *pRequestedInputFormat,
  [out, optional] IAudioMediaType **ppSupportedInputFormat
);
参数
[in, optional] pOppositeFormat
指向 IAudioMediaType 接口的指针。 此参数用于指示数据的输出格式。 pOppositeFormat 的值必须设置为 NULL ,以指示输出格式可以是任意类型。
[in, optional] pRequestedInputFormat
指向 IAudioMediaType 接口的指针。 此参数用于指示要验证的输入格式。
[out, optional] ppSupportedInputFormat
此参数指示最接近要验证的格式的支持格式。
返回值
如果调用成功完成,则 ppSupportedInputFormat 参数返回 pRequestedInputFormat 指针,IsInputFormatSupported 方法返回值 S_OK。 否则,此方法返回以下错误代码之一:
| 返回代码 | 说明 | 
|---|---|
| 
 | 不支持输入/输出格式对的格式。 ppSupportedInputFormat 返回建议的新格式。 | 
| 
 | 不支持要验证的格式。 ppSupportedInputFormat 的值不会更改。 | 
| 
 | 传递给 方法的指针无效。 ppSupportedInputFormat 的值不会更改。 | 
| 
 | 音频引擎跟踪这些附加错误条件。 | 
注解
不同 ADO 在方法的 IsInputFormatSupported 实现上存在差异。 例如,对于某些实现,当输入格式为 integer 类型时,输出只能是 float 类型。
为了启动格式协商,音频服务首先将 LFX sAPO 的输出设置为基于 float32 的默认格式。 然后,音频服务调用 IAudioProcessingObject::IsInputFormatSupported LFX sAPO 的 方法,建议默认格式,并监视此方法的 HRESULT 响应。 如果 LFX sAPO 的输入可以支持建议的格式,它将返回S_OK,以及对受支持格式的引用。 如果 LFX sAPO 的输入不支持建议的格式,它将返回S_FALSE以及对与建议格式最匹配的格式的引用。 如果 LFX sAPO 不支持建议的格式并且没有密切匹配,则返回APOERR_FORMAT_NOT_SUPPORTED。 GFX sAPO 适用于 LFX sAPO 的输出格式。 因此,GFX sAPO 不参与格式协商过程。
要求
| 要求 | 值 | 
|---|---|
| 最低受支持的客户端 | 适用于 Windows Vista 和更高版本的 Windows 操作系统。 | 
| 目标平台 | 通用 | 
| 标头 | audioenginebaseapo.h | 
| Library | Audioenginebaseapo.idl | 
| IRQL | 所有级别 |