Freigeben über


Anwendungsgrundlagen

[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK-ist ein Legacyfeature. Es wurde von Source Reader und Sink Writerersetzt. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code Source Reader und Sink Writer- anstelle Windows Media Format 11 SDK-verwendet werden soll. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]

Es gibt eine zusätzliche Verarbeitung, die Sie für jede Anwendung ausführen müssen, die die erweiterten Windows Media DRM-Client-APIs verwendet. In diesem Thema werden die Anforderungen für eine einfache Anwendung beschrieben.

Zunächst müssen Sie die erweiterten Windows Media DRM-Client-APIs initialisieren, indem Sie die WMDRMStartup--Funktion aufrufen. Die Objekte des SDK sind COM-Objekte, sie müssen jedoch nicht CoIntialize-aufrufen, da die WMDRMStatup-Funktion COM für Sie initialisiert.

Anmerkung

Das Windows Media Format SDK verwendet nur eine Teilmenge von COM. Wenn Sie also andere COM-Objekte als die in der erweiterten Windows Media DRM-Client-API verwenden, müssen Sie weiterhin CoInitialize-aufrufen.

 

Alle Objekte der erweiterten Windows Media DRM-Client-APIs werden mithilfe von Hilfsfunktionen und -methoden erstellt. Sie müssen nie CoCreateInstance- aufrufen, um ein Objekt zu erstellen. Die erste Schnittstelle zum Instanziieren für jede Anwendung, die das SDK verwendet, ist IWMDRMProvider, mit der Sie alle anderen Basisschnittstellen instanziieren können. Um eine Instanz von IWMDRMProvider-abzurufen, müssen Sie entweder WMDRMCreateProvider oder WMDRMCreateProtectedProvideraufrufen. Der Unterschied zwischen diesen Funktionen besteht darin, dass WMDRMCreateProvider ein Objekt erstellt, das wiederum nur Objekte erstellen kann, die keine Methoden unterstützen, die die Stubbibliothek erfordern.

Nachdem Sie über eine Instanz von IWMDRMProviderverfügen, können Sie die anderen benötigten Objekte erstellen, indem Sie IWMDRMProvider::CreateObjectaufrufen.

Wenn Sie bereit sind, Ihre Anwendung zu beenden, müssen Sie die DRM-Subsystemressourcen freigeben, indem Sie die WMDRMShutdown-Funktion aufrufen. Diese Funktion wird auch COM für Sie heruntergefahren.

Im folgenden Codebeispiel wird veranschaulicht, wie eine Anwendung initialisiert und abgeschlossen wird, die die erweiterten Windows Media DRM-Client-APIs verwendet.

#include <wmdrmsdk.h>
// TODO: Include other headers here as needed.

// This example demonstrates the code required in a single, simple
// main function. You will most likely break this code up into appropriate
// functions.
void main(void)
{
    HRESULT hr = S_OK;

    IWMDRMProvider*     pProvider     = NULL;
    // For the sake of example, this code will instantiate the
    //  IWMDRMLicenseQuery interface. The process is the same for the
    //  other base interfaces.
    IWMDRMLicenseQuery* pLicenseQuery = NULL;

    // Initialize the DRM subsystem.
    hr = WMDRMStartup();

    // Create a provider object, that can be used to create the other
    //  objects.
    if (SUCCEEDED(hr))
    {
        hr = WMDRMCreateProvider(&pProvider);
    }

    if(SUCCEEDED(hr))
    {
        hr = pProvider->CreateObject(
            IID_IWMDRMLicenseQuery, 
            (void**)&pLicenseQuery);
    }

    // TODO: Use the methods of IWMDRMLicenseQuery as required.

    // Cleanup and shutdown.
    SAFE_RELEASE(pLicenseQuery);
    SAFE_RELEASE(pProvider);

    hr = WMDRMShutdown();
}

Erste Schritte