Verwenden benutzerdefinierter gegenseitiger Ausschlusstypen

Sie können objekte für gegenseitigen Ausschluss in einem Profil verwenden, um die Anforderungen benutzerdefinierter Szenarien zu erfüllen. Durch Übergeben des GUID-Werts CLSID _ WMMUTEX Unknown an _ IWMMutualExclusion::SetTypeinformieren Sie das Objekt für gegenseitigen Ausschluss darüber, dass Sie ein benutzerdefiniertes Szenario verwenden.

Sie müssen die Streamauswahl manuell steuern, wenn Sie eine Datei mit einem benutzerdefinierten wert für gegenseitigen Ausschluss lesen. Das Readerobjekt verwendet den ersten Stream, den Sie dem gegenseitigen Ausschluss als Standard hinzufügen.

Führen Sie die folgenden Schritte aus, um ein benutzerdefiniertes objekt für gegenseitigen Ausschluss zu erstellen und es einem Profil hinzuzufügen:

  1. Erstellen Sie einen Profil-Manager, indem Sie die WMCreateProfileManager-Funktion aufrufen.

  2. Beginnen Sie entweder mit einem vorhandenen Profil, oder erstellen Sie ein völlig neues.

  3. Fügen Sie dem neuen Profil Streams hinzu, indem Sie IWMProfile::CreateNewStream aufrufen. Konfigurieren Sie die Streams nach Bedarf mithilfe der Methoden von IWMStreamConfig. Sie können queryInterface auch aufrufen, um auf andere Schnittstellen im Streamkonfigurationsobjekt zu zugreifen.

    CreateNewStream erstellt nur ein Streamkonfigurationsobjekt und wirkt sich nicht auf das Profil aus. Nachdem ein Stream ordnungsgemäß konfiguriert wurde, müssen Sie IWMProfile::AddStream aufrufen, um den Stream zum Profil hinzuzufügen.

  4. Erstellen Sie ein Objekt für gegenseitigen Ausschluss, indem Sie IWMProfile::CreateNewMutualExclusion aufrufen.

  5. Fügen Sie dem Objekt für gegenseitigen Ausschluss die gewünschten Streams hinzu, indem Sie IWMStreamList::AddStream aufrufen (direkt über IWMMutualExclusionverfügbar, das von IWMStreamList erbt).

  6. Legen Sie den Typ des gegenseitigen Ausschlusses auf benutzerdefiniert fest, indem Sie IWMMutualExclusion::SetType aufrufen. Übergeben Sie die CLSID _ WMMUTEX _ Unknown als Typ-GUID.

  7. Fügen Sie das konfigurierte Objekt für gegenseitigen Ausschluss zum Profil hinzu, indem Sie IWMProfile::AddMutualExclusion aufrufen.

IWMMutualExclusion-Schnittstelle

IWMProfile-Schnittstelle

IWMProfileManager-Schnittstelle

IWMStreamConfig-Schnittstelle

IWMStreamList-Schnittstelle

Verwenden von gegenseitigem Ausschluss

WMCreateProfileManager