структура 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 будет проверять оставшиеся лицензии и т. д., пока не истечет срок действия всех лицензий.
Требования
Требование | Значение |
---|---|
Заголовок |
|