Partager via


Configuration requise pour les applications windows Media DRM-Enabled

Pour créer une application compatible DRM (Windows Media Digital Rights Management), vous devez disposer des en-têtes et bibliothèques décrits dans la section Conditions générales pour le développement d’applications de ce document. En outre, l’application doit fournir des propriétés supplémentaires dans les informations du client lors de l’ouverture de l’appareil.

Les deux propriétés supplémentaires requises pour activer les transferts de contenu protégés par DRM Windows Media sont décrites dans le tableau suivant.

Propriété Description
WPD_CLIENT_WMDRM_APPLICATION_PRIVATE_KEY Spécifie la clé privée de l’application.
WPD_CLIENT_WMDRM_APPLICATION_CERTIFICATE Spécifie le certificat de l’application.

 

Ces propriétés doivent être fournies dans les informations clientes de l’application lorsque l’appareil est ouvert avec la méthode IPortableDevice ::Open. Lorsque ces propriétés sont fournies, l’API WPD autorise les transferts de contenu protégés. Si l’application a fourni un certificat et une clé privée, l’API crée un canal sécurisé pour transférer le contenu WMDRM protégé vers l’appareil.

Pour plus d’informations sur la création et la distribution d’applications Windows qui prennent en charge la gestion des droits numériques Windows Media, consultez « Licences d’applications windows ».

Transfert de contenu

Pour transférer du contenu protégé par WMDRM, utilisez IPortableDeviceContent ::CreateObjectWithPropertiesAndData. Cette méthode peut être utilisée pour le contenu protégé et clair sans options supplémentaires. L’API WPD sélectionne automatiquement le canal protégé ou clair selon que le contenu est protégé ou effacé. Il s’interface avec le fournisseur de contenu sécurisé WMDRM pour traiter les licences WMDRM.

Transfert du contenu clair connu

Si vous avez activé votre application pour gérer le contenu protégé, mais que vous savez qu’un fichier spécifique n’est pas protégé, vous pouvez indiquer à WPD d’ignorer le traitement DRM en définissant WPD_API_OPTION_USE_CLEAR_DATA_STREAM option TRUE dans l’entrée IPortableDeviceValues lors de l’appel IPortableDeviceContent ::CreateObjectWithPropertiesAndData pour le contenu clair.

Accès aux opérations de contrôle à l’aide d’IWMDRMDeviceApp

WPD fournit un mécanisme permettant d’accéder aux API IWMDRMDeviceApp pour les mises à jour de licence et la récupération des données. Pour accéder à cette API via WPD, appelez QueryInterface sur IID_IWMDRMDeviceApp à partir du IStream retourné par IPortableDeviceContent ::CreateObjectWithPropertiesAndData. Cette instance IWMDRMDeviceApp liée à la connexion IPortableDevice à votre appareil compatible WMDRM, et non au contenu spécifique où le IStream a été obtenu. WPD encapsule en interne les API de contrôle et le rend accessible à votre application. Votre application doit utiliser la constante WMDRMDEVICEAPP_USE_WPD_DEVICE_PTR pour le paramètre IWMDMDevice*.

L’extrait de code suivant illustre cela.

IStream*               pDataStream = NULL;

IWMDRMDeviceApp*       pWMDRMApp   = NULL;

  

// ... Initialization 

 

hr = pPortableDeviceContent->CreateObjectWithPropertiesAndData(pValues,

                              &pDataStream,

                              &dwOptimalWriteBufferSize,

                              NULL);

 

// ... Transfer the protected WMDRM content 

pDataStream->Write(pData, cbData, &cbWritten);

 

pDataStream->Commit(0);

 

hr = pDataStream->QueryInterface(IID_IWMDRMDeviceApp, 

                                 (void**)&pWMDRMApp);

 

if (SUCCEEDED(hr))

{

   DWORD dwStatus = 0;

 

   // Call metering operations on the current device using the WPD device pointer

   hr = pWMDRMApp->QueryDeviceStatus((IWMDMDevice *)WMDRMDEVICEAPP_USE_WPD_DEVICE_PTR, 

                                     &dwStatus);

}

La même condition préalable avec la clé privée et le certificat d’application s’appliquent également. Si la clé/le certificat n’est pas valide ou si le système WMDRM ne parvient pas à initialiser, l’appel QueryInferface échoue.

La méthode ci-dessus pour acquérir l’interface IWMDRMDeviceApp à partir de l’interface IStream n’est qu’une commodité si votre application effectue déjà un transfert de contenu protégé avant d’effectuer des opérations de contrôle et de synchronisation de licences.

Notre recommandation pour la plupart des applications qui doivent accéder à IWMDRMDeviceApp consiste à initialiser IWMDRMDeviceApp directement, car cela ne nécessite pas que votre application transfère du contenu protégé ou conserve sur les interfaces de transfert afin d’effectuer le contrôle des appareils et la synchronisation des licences. Cette méthode nécessite l’utilisation des API WMDM (Windows Media Device Manager). Pour plus d’informations et pour obtenir des exemples de code, reportez-vous aux accès aux API WMDRM à partir d’une application WPD livre blanc sur le site WHDC.

appareils portables Windows