Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. Source Reader e Sink Writer foram otimizados para o Windows 10 e o Windows 11. A Microsoft recomenda fortemente que o novo código utilize o Leitor de Origem e o Gravador de Destino em vez de SDK do Windows Media Format 11 , sempre que 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.]
Os métodos assíncronos suportados pelas APIs estendidas do cliente DRM do Windows Media usam o mesmo modelo de evento usado pelo SDK do Media Foundation. Cada objeto que suporta métodos assíncronos implementa a interfaceIWMDRMEventGenerator, que pode ser usada para recuperar um evento quando uma operação assíncrona é concluída.
A interface IWMDRMEventGenerator herda da interface IMFMediaEventGenerator, que está documentada na documentação do SDK do Media Foundation.
O exemplo de código no Exemplo de Individualização de DRM usa o método IMFMediaEventGenerator::GetEvent para recuperar eventos da fila um de cada vez. Usar GetEvent é mais simples do que usar IMFMediaEventGenerator::BeginGetEvent e IMFMediaEventGenerator::EndGetEvent com um retorno de chamada, o que torna os exemplos de código mais fáceis de entender. Se utilizares GetEvent no teu código ou implementares IMFAsyncCallback e utilizares BeginGetEvent e EndGetEvent, a lógica para manipular o evento depois de ter sido recebido é a mesma.
Vários dos métodos assíncronos geram eventos que contêm referências a objetos que podem ser usados para obter informações de status mais detalhadas. Nesses casos, o evento gerado tem um ponteiro IUnknown como seu valor, que pode ser consultado para recuperar a interface de status. A lista a seguir resume as relações entre chamadas assíncronas, eventos gerados e outras interfaces.
- O método de IWMDRMLicenseManagement::BackupLicenses gera eventos de MEWMDRMLicenseBackupProgress com interfaces deIWMDRMLicenseBackupRestoreStatus associadas.
- O método IWMDRMLicenseManagement::RestoreLicenses gera eventos de MEWMDRMLicenseRestoreProgress com interfaces associadas de IWMDRMLicenseBackupRestoreStatus.
- O método IWMDRMSecurity::PerformSecurityUpdate, quando usado para executar a individualização, gera eventos de MEWMDRMIndividualizationProgress com interfaces associadas IWMDRMIndividualizationStatus.
- O método IWMDRMLicenseManagement::AcquireLicense, quando usado para preparar dados para aquisição de licença não silenciosa, gera um evento MEWMDRMLicenseAcquisitionCompleted com uma interface IWMDRMNonSilentLicenseAcquisitionassociada.
Tópicos relacionados