Anforderungen für Windows Media DRM-Enabled-Anwendungen
Um eine Windows Media Digital Rights Management (DRM)-fähige Anwendung zu erstellen, benötigen Sie die Header und Bibliotheken, die im Abschnitt Allgemeine Anforderungen für die Anwendungsentwicklung dieses Dokuments beschrieben sind. Darüber hinaus muss die Anwendung beim Öffnen des Geräts zusätzliche Eigenschaften in den Clientinformationen angeben.
Die beiden zusätzlichen Eigenschaften, die zum Aktivieren von DRM-geschützten Inhaltsübertragungen durch Windows Media erforderlich sind, werden in der folgenden Tabelle beschrieben.
Eigenschaft | Beschreibung |
---|---|
WPD_CLIENT_WMDRM_APPLICATION_PRIVATE_KEY | Gibt den privaten Schlüssel der Anwendung an. |
WPD_CLIENT_WMDRM_APPLICATION_CERTIFICATE | Gibt das Zertifikat der Anwendung an. |
Diese Eigenschaften müssen in den Clientinformationen der Anwendung angegeben werden, wenn das Gerät mit der IPortableDevice::Open-Methode geöffnet wird. Wenn diese Eigenschaften bereitgestellt werden, lässt die WPD-API geschützte Inhaltsübertragungen zu. Wenn die Anwendung ein Zertifikat und einen privaten Schlüssel bereitgestellt hat, erstellt die API einen sicheren Kanal, um geschützte WMDRM-Inhalte auf das Gerät zu übertragen.
Informationen zum Erstellen und Verteilen von Windows-basierten Anwendungen, die Windows Media DRM unterstützen, finden Sie unter Lizenzierung von Windows-basierten Anwendungen.
Übertragen von Inhalten
Verwenden Sie zum Übertragen von WMDRM-geschützten Inhalten IPortableDeviceContent::CreateObjectWithPropertiesAndData. Diese Methode kann sowohl für geschützte als auch für klare Inhalte ohne zusätzliche Optionen verwendet werden. Die WPD-API wählt automatisch den geschützten oder leeren Kanal aus, je nachdem, ob der Inhalt geschützt oder eindeutig ist. Es ist eine Schnittstelle mit dem WMDRM Secure Content Provider, um die WMDRM-Lizenzen zu verarbeiten.
Übertragen bekannter eindeutiger Inhalte
Wenn Sie Ihre Anwendung für die Verarbeitung geschützter Inhalte aktiviert haben, aber wissen, dass eine bestimmte Datei nicht geschützt ist, können Sie WPD anweisen, die DRM-Verarbeitung zu überspringen, indem Sie WPD_API_OPTION_USE_CLEAR_DATA_STREAM Option in der Eingabe IPortableDeviceValues auf TRUE festlegen, wenn Sie IPortableDeviceContent::CreateObjectWithPropertiesAndData aufrufen, um Inhalte zu löschen.
Zugreifen auf Messvorgänge mithilfe von IWMDRMDeviceApp
WPD bietet einen Mechanismus für den Zugriff auf die IWMDRMDeviceApp-APIs für Lizenzupdates und den Abruf von Messdaten. Um über WPD auf diese API zuzugreifen, rufen Sie QueryInterface auf IID_IWMDRMDeviceApp aus dem IStream auf, der von IPortableDeviceContent::CreateObjectWithPropertiesAndData zurückgegeben wird. Diese IWMDRMDeviceApp instance an die IPortableDevice-Verbindung mit Ihrem WMDRM-kompatiblen Gerät gebunden und nicht an den spezifischen Inhalt, auf dem der IStream abgerufen wurde. WPD umschließt intern die Messungs-APIs und macht sie für Ihre Anwendung zugänglich. Ihre Anwendung sollte die WMDRMDEVICEAPP_USE_WPD_DEVICE_PTR Konstante für den Parameter IWMDMDevice* verwenden.
Der folgende Codeausschnitt veranschaulicht dies.
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);
}
Die gleiche Voraussetzung für den privaten Schlüssel und das Zertifikat der Anwendung gilt auch hier. Wenn der Schlüssel/das Zertifikat ungültig ist oder das WMDRM-System nicht initialisiert werden kann, schlägt der QueryInferface-Aufruf fehl.
Die oben genannte Methode zum Abrufen der IWMDRMDeviceApp-Schnittstelle aus dem IStream-Zeiger ist nur ein Vorteil, wenn Ihre Anwendung bereits eine vorherige übertragung geschützter Inhalte durchführt, bevor Sie mit mess- und Lizenzsynchronisierungsvorgängen fortfahren.
Unsere Empfehlung für die meisten Anwendungen, die auf IWMDRMDeviceApp zugreifen müssen, besteht darin, IWMDRMDeviceApp direkt zu initialisieren, da dies nicht erfordert, dass Ihre Anwendung geschützte Inhalte übertragen oder an den Übertragungsschnittstellen festhalten muss, um die Gerätemessung und Die Lizenzsynchronisierung durchzuführen. Diese Methode erfordert die Verwendung von WMDM-APIs (Windows Media Geräte-Manager). Ausführliche Informationen und Beispielcode finden Sie im Whitepaper Zugreifen auf WMDRM-APIs aus einer WPD-Anwendung auf der WHDC-Website.
Zugehörige Themen