使用自定义互斥类型

可以在配置文件中使用相互排除对象来满足自定义方案的需求。 通过将 GUID 值CLSID_WMMUTEX_Unknown传递给 IWMMutualExclusion::SetType,可以通知相互排除对象正在使用自定义方案。

读取具有自定义互斥值的文件时,必须手动控制流选择。 读取器对象将使用添加到互斥的第一个流作为默认值。

使用以下步骤创建自定义互斥对象并将其添加到配置文件:

  1. 通过调用 WMCreateProfileManager 函数创建配置文件管理器。

  2. 从现有配置文件开始,或创建一个全新的配置文件。

  3. 通过调用 IWMProfile::CreateNewStream 将流添加到新配置文件。 使用 IWMStreamConfig 的方法根据需要配置流。 还可以调用 QueryInterface 来访问流配置对象中的其他接口。

    CreateNewStream 仅创建流配置对象,不会影响配置文件。 正确配置流后,必须调用 IWMProfile::AddStream 将流添加到配置文件。

  4. 通过调用 IWMProfile::CreateNewMutualExclusion 创建相互排除对象。

  5. 通过调用 IWMStreamList::AddStream (直接从 IWMMutualExclusion 获取的所需流添加到相互排除对象,该流继承自 IWMStreamList) 。

  6. 通过调用 IWMMutualExclusion::SetType 将相互排除的类型设置为自定义。 将CLSID_WMMUTEX_Unknown作为类型 GUID 传递。

  7. 通过调用 IWMProfile::AddMutualExclusion 将配置的相互排除对象添加到配置文件。

IWMMutualExclusion 接口

IWMProfile 接口

IWMProfileManager 接口

IWMStreamConfig 接口

IWMStreamList 接口

使用相互排除

WMCreateProfileManager