Utilisation du modèle d’événement Media Foundation
[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par lecteur source et enregistreur récepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
Les méthodes asynchrones prises en charge par les API étendues du client Windows Media DRM utilisent le même modèle d’événement que celui utilisé par le Kit de développement logiciel (SDK) Media Foundation. Chaque objet qui prend en charge les méthodes asynchrones implémente l’interface IWMDRMEventGenerator , qui peut être utilisée pour récupérer un événement lorsqu’une opération asynchrone est terminée.
L’interface IWMDRMEventGenerator hérite de l’interface IMFMediaEventGenerator , qui est documentée dans la documentation du SDK Media Foundation.
L’exemple de code de l’exemple d’individualisation DRM utilise la méthode IMFMediaEventGenerator::GetEvent pour récupérer les événements de la file d’attente un par un. L’utilisation de GetEvent est plus simple que d’utiliser IMFMediaEventGenerator::BeginGetEvent et IMFMediaEventGenerator::EndGetEvent avec un rappel, ce qui facilite la compréhension des exemples de code. Que vous utilisiez GetEvent dans votre code ou implémentez IMFAsyncCallback et que vous utilisiez BeginGetEvent et EndGetEvent, la logique de gestion de l’événement après sa réception est la même.
Plusieurs des méthodes asynchrones génèrent des événements qui contiennent des références à des objets qui peuvent être utilisés pour obtenir des informations status plus détaillées. Dans ce cas, l’événement généré a comme valeur un pointeur IUnknown, qui peut être interrogé pour récupérer l’interface status. La liste suivante récapitule les relations entre les appels asynchrones, les événements générés et d’autres interfaces.
- La méthode IWMDRMLicenseManagement::BackupLicenses génère des événements MEWMDRMLicenseBackupProgress avec les interfaces IWMDRMLicenseBackupRestoreStatus associées.
- La méthode IWMDRMLicenseManagement::RestoreLicenses génère des événements MEWMDRMLicenseRestoreProgress avec les interfaces IWMDRMLicenseBackupRestoreStatus associées.
- La méthode IWMDRMSecurity::P erformSecurityUpdate , lorsqu’elle est utilisée pour effectuer l’individualisation, génère des événements MEWMDRMIndividualizationProgress avec des interfaces IWMDRMIndividualizationStatus associées.
- La méthode IWMDRMLicenseManagement::AcquireLicense , lorsqu’elle est utilisée pour préparer des données pour l’acquisition de licences non silencieuses, génère un événement MEWMDRMLicenseAcquisitionCompleted avec une interface IWMDRMNonSilentLicenseAquisition associée.
Rubriques connexes