Udostępnij przez


Używanie niestandardowych typów wzajemnego wykluczania

[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Czytnik Źródła i Pisarkę Zsypu . Czytnik Źródła i Zapisujnik Wyjścia zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał Source Reader i Sink Writer zamiast Windows Media Format 11 SDK, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Obiekty wzajemnego wykluczania można używać w profilu, aby zaspokoić potrzeby scenariuszy niestandardowych. Przekazując wartość identyfikatora GUID CLSID_WMMUTEX_Unknown do IWMMutualExclusion::SetType, informujesz obiekt wzajemnego wykluczania, że używasz scenariusza niestandardowego.

Przy odczytywaniu pliku z niestandardową wartością wzajemnego wykluczania należy ręcznie kontrolować selekcję strumienia. Obiekt czytelnika użyje pierwszego strumienia dodanego do mechanizmu wzajemnego wykluczenia jako domyślnego.

Wykonaj następujące kroki, aby utworzyć niestandardowy obiekt wzajemnego wykluczania i dodać go do profilu:

  1. Utwórz menedżera profilów, wywołując funkcję WMCreateProfileManager.

  2. Zacznij od istniejącego profilu lub utwórz całkowicie nowy.

  3. Dodaj strumienie do nowego profilu, wywołując IWMProfile::CreateNewStream. Skonfiguruj strumienie zgodnie z potrzebami przy użyciu metod IWMStreamConfig. Możesz również wywołać QueryInterface, aby uzyskać dostęp do innych interfejsów w obiekcie konfiguracji strumienia.

    CreateNewStream tworzy tylko obiekt konfiguracji strumienia i nie ma wpływu na profil. Po poprawnym skonfigurowaniu strumienia należy wywołać IWMProfile::AddStream, aby dodać strumień do profilu.

  4. Utwórz obiekt wzajemnego wykluczenia, wywołując IWMProfile::CreateNewMutualExclusion.

  5. Dodaj żądane strumienie do obiektu wzajemnego wykluczenia, wywołując IWMStreamList::AddStream (dostępne bezpośrednio z IWMMutualExclusion, które dziedziczy z IWMStreamList).

  6. Ustaw typ wzajemnego wykluczenia na niestandardowy, wywołując IWMMutualExclusion::SetType. Przekaż CLSID_WMMUTEX_Unknown jako identyfikator GUID typu.

  7. Dodaj skonfigurowany obiekt wzajemnego wykluczania do profilu, wywołując IWMProfile::AddMutualExclusion.

Interfejs IWMMutualExclusion

interfejs IWMProfile

Interfejs IWMProfileManager

Interfejs IWMStreamConfig

interfejs IWMStreamList

korzystanie z wzajemnego wykluczania

WMCreateProfileManager