DECLARE_INTERFACE_(IKsFormatSupport, IUnknown)
{
// 查询是否支持指定的数据流格式
STDMETHOD(QuerySupport)(THIS_
_In_ REFGUID guidFormat,
_Out_ DWORD *pdwFlags
) PURE;
// 获取支持的格式列表
STDMETHOD(GetDevicePreferredFormat)(THIS_
_Out_ KSDATAFORMAT_WAVEFORMATEX *pKsFormat
) PURE;
// 获取设备支持的格式数量
STDMETHOD(GetDeviceSupportedFormatCount)(THIS_
_Out_ UINT *pCount
) PURE;
// 获取设备支持的格式
STDMETHOD(GetDeviceSupportedFormat)(THIS_
_In_ UINT nIndex,
_Out_ KSDATAFORMAT_WAVEFORMATEX *pKsFormat
) PURE;
// 获取设备默认的数据流格式
STDMETHOD(GetDeviceDefaultFormat)(THIS_
_Out_ KSDATAFORMAT_WAVEFORMATEX *pKsFormat
) PURE;
// 获取设备的最低和最高数据流格式
STDMETHOD(GetDeviceFormatRange)(THIS_
_Out_ KSDATARANGE_AUDIO *pKsDataRangeAudio
) PURE;
};
通过这个接口,你可以查询设备是否支持特定的数据流格式,获取设备支持的格式列表以及获取设备默认和首选的数据流格式等信息。这对于音频设备的初始化和配置非常有用。
在实际使用中,你需要了解音频设备的格式支持情况,然后在代码中调用相应的方法来获取和设置音频格式。这需要一定的驱动程序开发和音频编程的知识。
转载请注明出处:http://www.zyzy.cn/article/detail/26629/Win32 API/Devicetopology.h/IKsFormatSupport