Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
[De functie die is gekoppeld aan deze pagina, Windows Media Format 11 SDK, is een verouderde functie. Het is vervangen door Source Reader en Sink Writer. Bronlezer en Sink Writer zijn geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken bronlezer en Sink Writer- in plaats van Windows Media Format 11 SDK, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]
Er is een aantal extra verwerkingen die u moet uitvoeren voor elke toepassing die gebruikmaakt van de uitgebreide API's van de Windows Media DRM-client. In dit onderwerp worden de vereisten voor een eenvoudige toepassing beschreven.
Eerst moet u de uitgebreide API's van de Windows Media DRM-client initialiseren door de WMDRMStartup--functie aan te roepen. De objecten van de SDK zijn COM-objecten, maar u hoeft geen CoIntialize-aan te roepen, omdat de WMDRMStatup functie COM initialiseert voor u.
Notitie
De Windows Media Format SDK maakt alleen gebruik van een subset van COM, dus als u andere COM-objecten gebruikt dan die in de uitgebreide API van de Windows Media DRM-client, moet u nog steeds CoInitializeaanroepen.
Alle objecten van de uitgebreide API's van de Windows Media DRM-client worden gemaakt met behulp van helperfuncties en -methoden. U hoeft CoCreateInstance nooit aan te roepen om een object te maken. De eerste interface om te instantiƫren voor elke toepassing die gebruikmaakt van de SDK, is IWMDRMProvider, waarmee u alle andere basisinterfaces kunt instantiƫren. Als u een exemplaar van IWMDRMProviderwilt ophalen, moet u WMDRMCreateProvider of WMDRMCreateProtectedProvideraanroepen. Het verschil tussen deze functies is dat WMDRMCreateProvider een object maakt dat op zijn beurt alleen objecten kan maken die geen methoden ondersteunen waarvoor de stub-bibliotheek is vereist.
Nadat u een exemplaar van IWMDRMProviderhebt, kunt u de andere objecten maken die u nodig hebt door IWMDRMProvider::CreateObjectaan te roepen.
Wanneer u klaar bent om uw toepassing af te sluiten, moet u de RESOURCES van het DRM-subsysteem vrijgeven door de WMDRMShutdown- functie aan te roepen. Met deze functie wordt COM ook voor u afgesloten.
In het volgende codevoorbeeld ziet u hoe u een toepassing initialiseert en afsluit die gebruikmaakt van de uitgebreide API's van de Windows Media DRM-client.
#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();
}
Verwante onderwerpen