Поделиться через


структура DRM_LICENSE_STATE_DATA (Wmdrmsdk.h)

Структура DRM_LICENSE_STATE_DATA содержит сведения об ограничениях лицензии для права DRM.

Синтаксис

typedef struct DRM_LICENSE_STATE_DATA {
  DWORD                      dwStreamId;
  DRM_LICENSE_STATE_CATEGORY dwCategory;
  DWORD                      dwNumCounts;
  DWORD                      dwCount[4];
  DWORD                      dwNumDates;
  FILETIME                   datetime[4];
  DWORD                      dwVague;
} ;

Члены

dwStreamId

Номер потока, к которому применяется лицензия. Должно иметь значение 0, указывающее, что лицензия применяется ко всем потокам в файле.

DwCategory

Категория отображаемой строки. Возможные значения и их значение см. в DRM_LICENSE_STATE_CATEGORY .

dwNumCounts

Количество элементов, предоставленных в dwCount. Обычно это значение равно 0 или 1.

dwCount[4]

Массив из 0, 1 или более значений DWORD , представляющих количество выполнений действия, указанного в dwCategory . См. заметки.

dwNumDates

Количество элементов, предоставленных в datetime. Обычно используется не более двух дат, например с лицензией, которая действительна от одной даты до другой даты.

datetime[4]

Массив из одной или нескольких структур FILETIME , представляющих одну или несколько дат в лицензии. Значение конкретной даты зависит от значения dwCategory.

dwVague

Ноль или несколько из следующих флагов в сочетании с побитовой ИЛИ:

Flag Описание
DRM_LICENSE_STATE_DATA_VAGUE Если этот параметр задан, к содержимому может применяться больше лицензий. Единственный способ быть уверенным в отдельных лицензиях, которые применяются к заданному идентификатору ключа, — перечислить лицензии. Для этого вызовите IWMDRMLicenseManagement::CreateLicenseEnumeration, передав идентификатор ключа в качестве параметра bstrKID. Затем используйте полученный интерфейс IWMDRMLicense для проверки лицензий.
DRM_LICENSE_STATE_DATA_OPL_PRESENT Если этот параметр задан, лицензия включает уровни защиты выходных данных (OPL), которые должны быть извлечены и проверены на соответствие назначению выходных данных приложения.
DRM_LICENSE_STATE_DATA_SAP_PRESENT Если этот параметр задан, содержимое должно быть доставлено с помощью безопасного звукового пути (SAP).

Комментарии

Эта структура извлекается путем вызова IWMDRMLicenseQuery::QueryLicenseState.

Если параметр dwCategory имеет WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL, то массив datetime обычно содержит две даты: "из" и "до". Для создания более сложных лицензий также можно указать две пары дат.

Элементы массива dwCount соответствуют датам или диапазонам дат, указанным в массиве datetime . Если параметр dwCategory имеет значение WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL а datetime содержит одну пару дат, dwCount будет содержать один элемент. Если аргумент datetime содержит две пары дат (четыре элемента), то dwCount должен содержать два элемента, по одному для каждой пары дат.

В некоторых случаях пользователям может быть выдано несколько лицензий на файл. Например, они могли приобрести лицензию, разрешающую пять игр до конца месяца, а затем приобрели вторую лицензию на неограниченные права. В этом случае флаг DRM_LICENSE_STATE_DATA_VAGUE устанавливается в dwVague (dwVague & DRM_LICENSE_STATE_DATA_VAGUE != 0), и компонент DRM будет использовать алгоритм для определения наиболее вероятного набора примененных прав. По истечении срока действия одной лицензии компонент DRM будет проверять оставшиеся лицензии и т. д., пока не истечет срок действия всех лицензий.

Требования

Требование Значение
Заголовок
Wmdrmsdk.h

См. также раздел

Структуры