Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей, пакет SDK для Windows Media 11, является устаревшей функцией. Он был заменен средства чтения источника и записи приемника. средства чтения источников и записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код средства чтения исходного кода и записи приемников вместо пакета SDK для Windows Media 11, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Для любого приложения, использующего расширенные API клиента DRM Windows Media, необходимо выполнить дополнительную обработку. В этом разделе описываются требования для простого приложения.
Сначала необходимо инициализировать расширенные API клиента DRM Windows Media, вызвав функцию WMDRMStartup. Объекты пакета SDK являются COM-объектами, но не требуется вызывать CoIntialize, так как функция WMDRMStatup инициализирует COM.
Заметка
Пакет SDK для формата Windows Media использует только подмножество COM, поэтому если вы используете COM-объекты, отличные от объектов в РАСШИРЕННОМ API клиента DRM Windows Media, необходимо по-прежнему вызывать CoInitialize.
Все объекты расширенных API клиента DRM Windows Media создаются с помощью вспомогательных функций и методов. Для создания объекта никогда не требуется вызывать CoCreateInst ance. Первый интерфейс для создания экземпляра для любого приложения, использующего пакет SDK, — это IWMDRMProvider, который можно использовать для создания экземпляров всех остальных базовых интерфейсов. Чтобы получить экземпляр IWMDRMProvider, необходимо вызвать WMDRMCreateProvider или WMDRMCreateProtectedProvider. Разница между этими функциями заключается в том, что WMDRMCreateProvider создает объект, который, в свою очередь, может создавать только объекты, которые не поддерживают методы, требующие библиотеки заглушки.
После экземпляраIWMDRMProvider можно создать другие объекты, необходимые для вызова IWMDRMProvider::CreateObject.
Когда вы готовы выйти из приложения, необходимо освободить ресурсы подсистемы DRM, вызвав функцию WMDRMShutdown. Эта функция также завершает работу COM.
В следующем примере кода показано, как инициализировать и завершить приложение, использующее расширенные API клиента DRM 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();
}
Связанные разделы