共用方式為


使用自定義互斥類型

[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器接收寫入器已取代它。 來源讀取器接收寫入器 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新代碼盡可能使用 Source ReaderSink Writer,而不是 Windows Media Format 11 SDK。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

您可以在配置檔中使用相互排除物件,以符合自定義案例的需求。 透過將 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