DECLARE_INTERFACE_(IDeviceTopology, IUnknown)
{
// 获取设备的连接器数量
STDMETHOD(GetConnectorCount)(THIS_
_Out_ UINT *pConnectorCount
) PURE;
// 获取连接器
STDMETHOD(GetConnector)(THIS_
_In_ UINT nIndex,
_Out_ IConnector **ppConnector
) PURE;
// 获取连接器的部件
STDMETHOD(GetSubunit)(THIS_
_In_ UINT nIndex,
_Out_ IPart **ppSubunit
) PURE;
// 获取默认的音频路径
STDMETHOD(GetDefaultAudioPath)(THIS_
_In_ ERole role,
_In_ UINT deviceType,
_Out_ IAudioPath **ppAudioPath
) PURE;
// 获取设备的部件数量
STDMETHOD(GetPartCount)(THIS_
_Out_ UINT *pPartCount
) PURE;
// 获取设备的部件
STDMETHOD(GetPart)(THIS_
_In_ UINT nIndex,
_Out_ IPart **ppPart
) PURE;
// 获取设备的拓扑结构
STDMETHOD(GetDeviceId)(THIS_
_Outptr_result_maybenull_ LPWSTR *ppwstrDeviceId
) PURE;
// 获取设备的数据流方向
STDMETHOD(GetSignalPath)(THIS_
_In_ IPart *ppIPartFrom,
_In_ IPart *ppIPartTo,
_In_ DWORD dwFlags,
_Out_ IConnection **ppIConnection
) PURE;
// 获取默认的数据流方向
STDMETHOD(GetAudioLoudness)(THIS_
_In_ DWORD dwDeviceId,
_Out_ BOOL *pbEnabled
) PURE;
// 设置默认的数据流方向
STDMETHOD(SetAudioLoudness)(THIS_
_In_ DWORD dwDeviceId,
_In_ BOOL bEnable
) PURE;
// 获取设备的音频线路属性
STDMETHOD(GetAudioLoudnessStep)(THIS_
_In_ DWORD dwDeviceId,
_Out_ BOOL *pbEnabled
) PURE;
// 设置设备的音频线路属性
STDMETHOD(SetAudioLoudnessStep)(THIS_
_In_ DWORD dwDeviceId,
_In_ BOOL bEnable
) PURE;
};
通过这个接口,你可以访问音频设备的拓扑结构,包括连接器、部件、数据流路径等。在实际使用中,你可以调用不同的方法来获取设备的各种信息,以满足你的音频设备管理和控制需求。这需要一定的驱动程序开发和音频编程的知识。
转载请注明出处:http://www.zyzy.cn/article/detail/26628/Win32 API/Devicetopology.h/IDeviceTopology