Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
[Funktionen som är associerad med den här sidan, Windows Media Format 11 SDK, är en äldre funktion. Det har ersatts av Source Reader och Sink Writer. Source Reader och Sink Writer har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder Source Reader och Sink Writer i stället för Windows Media Format 11 SDK, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]
Det finns en del extra bearbetning som du måste utföra för alla program som använder Windows Media DRM Client Extended API:er. I det här avsnittet beskrivs kraven för ett enkelt program.
Först måste du initiera utökade API:er för Windows Media DRM-klienten genom att anropa funktionen WMDRMStartup. Objekten i SDK är COM-objekt, men du behöver inte anropa CoIntializeeftersom funktionen WMDRMStatup initierar COM åt dig.
Not
Windows Media Format SDK använder bara en delmängd av COM, så om du använder andra COM-objekt än de i Windows Media DRM Client Extended API måste du fortfarande anropa CoInitialize.
Alla objekt i Windows Media DRM Client Extended API:er skapas med hjälpfunktioner och metoder. Du behöver aldrig anropa CoCreateInstance för att skapa ett objekt. Det första gränssnittet som instansierar för alla program som använder SDK är IWMDRMProvider, som du kan använda för att instansiera alla andra basgränssnitt. Om du vill hämta en instans av IWMDRMProvidermåste du anropa antingen WMDRMCreateProvider eller WMDRMCreateProtectedProvider. Skillnaden mellan dessa funktioner är att WMDRMCreateProvider skapar ett objekt som i sin tur bara kan skapa objekt som inte stöder metoder som kräver stub-biblioteket.
När du har en instans av IWMDRMProviderkan du skapa de andra objekt som du behöver genom att anropa IWMDRMProvider::CreateObject.
När du är redo att avsluta programmet måste du frigöra DRM-undersystemresurserna genom att anropa funktionen WMDRMShutdown. Den här funktionen stänger också av COM åt dig.
Följande kodexempel visar hur du initierar och avslutar ett program som använder Windows Media DRM Client Extended API:er.
#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();
}
Relaterade ämnen