Usando tipos de exclusão mútua personalizados
[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador de Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador de Coletor em vez do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Você pode usar objetos de exclusão mútua em um perfil para atender às necessidades de cenários personalizados. Ao passar o valor do GUID CLSID_WMMUTEX_Unknown para IWMMutualExclusion::SetType, você informa ao objeto de exclusão mútua que está usando um cenário personalizado.
Você deve controlar manualmente a seleção de fluxo ao ler um arquivo com um valor de exclusão mútua personalizado. O objeto reader usará o primeiro fluxo que você adicionar à exclusão mútua como padrão.
Use as seguintes etapas para criar um objeto de exclusão mútua personalizado e adicioná-lo a um perfil:
Crie um gerenciador de perfil chamando a função WMCreateProfileManager .
Comece com um perfil existente ou crie um totalmente novo.
- Se você estiver usando um perfil existente, chame um dos métodos de carga da interface IWMProfileManager . Em seguida, pule para a etapa 4.
- Se você estiver criando um perfil totalmente novo, chame IWMProfileManager::CreateEmptyProfile.
Adicione fluxos ao novo perfil chamando IWMProfile::CreateNewStream. Configure os fluxos conforme necessário usando os métodos de IWMStreamConfig. Você também pode chamar QueryInterface para acessar outras interfaces no objeto de configuração de fluxo.
CreateNewStream cria apenas um objeto de configuração de fluxo e não afeta o perfil. Depois que um fluxo é configurado corretamente, você deve chamar IWMProfile::AddStream para adicionar o fluxo ao perfil.
Crie um objeto de exclusão mútua chamando IWMProfile::CreateNewMutualExclusion.
Adicione os fluxos desejados ao objeto de exclusão mútua chamando IWMStreamList::AddStream (disponível diretamente de IWMMutualExclusion, que herda de IWMStreamList).
Defina o tipo de exclusão mútua como personalizado chamando IWMMutualExclusion::SetType. Passe o CLSID_WMMUTEX_Unknown como o GUID do tipo.
Adicione o objeto de exclusão mútua configurado ao perfil chamando IWMProfile::AddMutualExclusion.
Tópicos relacionados