Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. do Source Reader e Sink Writer foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize do Leitor de Origem e do Gravador de Separadores em vez de SDK do Windows Media Format 11, sempre que possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Há algum processamento extra que você deve executar para qualquer aplicativo que usa as APIs estendidas do cliente Windows Media DRM. Este tópico descreve os requisitos para um aplicativo simples.
Primeiro, você deve inicializar as APIs estendidas do cliente DRM do Windows Media chamando a funçãoWMDRMStartup. Os objetos do SDK são objetos COM, mas você não precisa chamar CoIntialize, porque a função WMDRMStatup inicializa COM para você.
Observação
O SDK do Windows Media Format usa apenas um subconjunto de COM, portanto, se você usar objetos COM diferentes daqueles na API estendida do cliente Windows Media DRM, ainda deverá chamar CoInitialize.
Todos os objetos das APIs estendidas do cliente DRM do Windows Media são criados usando funções e métodos auxiliares. Você nunca precisa chamar CoCreateInstance para criar um objeto. A primeira interface a ser instanciada para qualquer aplicativo que usa o SDK é IWMDRMProvider, que você pode usar para instanciar todas as outras interfaces base. Para obter uma instância de IWMDRMProvider , você deve chamar WMDRMCreateProvider ou WMDRMCreateProtectedProvider. A diferença entre essas funções é que WMDRMCreateProvider cria um objeto que, por sua vez, pode criar apenas objetos que não suportam métodos que exigem a biblioteca de stub.
Depois de ter uma instância de IWMDRMProvider, você pode criar os outros objetos necessários chamando IWMDRMProvider::CreateObject.
Quando estiver pronto para sair do aplicativo, você deve liberar os recursos do subsistema DRM chamando a função WMDRMShutdown. Esta função também desliga o COM para você.
O exemplo de código a seguir demonstra como inicializar e concluir um aplicativo que usa as APIs estendidas do cliente DRM do Windows Media.
#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();
}
Tópicos relacionados