Prise en charge de DRM dans DirectShow
[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.]
La lecture et l’écriture de fichiers protégés par DRM dans DirectShow s’effectuent de la même manière que lorsque vous utilisez directement le Kit de développement logiciel (SDK) au format Windows Media. Pour commencer, vous avez besoin de la bibliothèque statique wmstubdrm, qui est obtenue séparément de Microsoft. En outre, vous devez implémenter l’interface IKeyProvider pour permettre à votre application d’accéder aux objets d’exécution du Kit de développement logiciel (SDK) au format Windows Media lorsque la gestion des droits numériques est activée.
Lorsque vous appliquez la protection DRM version 1, utilisez l’interface IWMHeaderInfo , obtenue comme décrit dans Lecture de fichiers ASF dans DirectShow. Lorsque vous appliquez la protection DRM version 7, obtenez l’interface IWMDRMWriter en appelant QueryService sur le filtre WM ASF Writer , comme indiqué dans l’extrait de code plus loin dans cette rubrique.
Toute autre configuration spécifique à DRM est exactement la même que décrite dans Activation de la prise en charge DRM. Utilisez QueryService pour obtenir l’interface IWMDRMReader à partir du filtre lecteur ASF WM .
DirectX 9.0 contient un exemple, PlayWndASF, une application de lecteur DirectShow avec DRM qui illustre l’acquisition de licences DRM version 1 et version 7. Cet exemple inclut également une implémentation de la classe CKeyProvider , qui prend en charge l’interface IKeyProvider .