structure DRM_LICENSE_STATE_DATA (Wmdrmsdk.h)

La structure DRM_LICENSE_STATE_DATA contient des informations sur les restrictions de licence pour un droit DRM.

Syntaxe

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;
} ;

Membres

dwStreamId

Numéro de flux auquel la licence s’applique. Doit être 0, ce qui indique que la licence s’applique à tous les flux du fichier.

dwCategory

Catégorie de chaîne à afficher. Consultez DRM_LICENSE_STATE_CATEGORY pour connaître les valeurs possibles et leur signification.

dwNumCounts

Nombre d’éléments fournis dans dwCount. Cette valeur est généralement 0 ou 1.

dwCount[4]

Tableau de valeurs DWORD 0 ou 1 ou plus qui représentent le nombre de fois où l’action spécifiée dans dwCategory peut être effectuée. Consultez la section Notes.

dwNumDates

Nombre d’éléments fournis en datetime. En règle générale, pas plus de deux dates sont utilisées, par exemple, avec une licence valide d’une date à une autre.

datetime[4]

Tableau d’une ou plusieurs structures FILETIME représentant une ou plusieurs dates dans la licence. La signification d’une date particulière dépend de la valeur de dwCategory.

dwVague

Zéro ou plusieurs des indicateurs suivants associés à un OR au niveau du bit :

Indicateur Description
DRM_LICENSE_STATE_DATA_VAGUE S’il est défini, d’autres licences peuvent s’appliquer au contenu. La seule façon d’être certain des licences individuelles qui s’appliquent à un ID de clé donné est d’énumérer les licences. Pour ce faire, appelez IWMDRMLicenseManagement::CreateLicenseEnumeration, en passant l’ID de clé comme paramètre bstrKID. Utilisez ensuite l’interface IWMDRMLicense récupérée pour examiner les licences.
DRM_LICENSE_STATE_DATA_OPL_PRESENT Si elle est définie, la licence inclut des niveaux de protection de sortie (OPL) qui doivent être récupérés et vérifiés par rapport à la destination de la sortie de votre application.
DRM_LICENSE_STATE_DATA_SAP_PRESENT S’il est défini, le contenu doit être remis à l’aide du chemin d’accès audio sécurisé (SAP).

Notes

Cette structure est récupérée en appelant IWMDRMLicenseQuery::QueryLicenseState.

Si dwCategory est WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL, le tableau datetime contient généralement deux dates : une date « from » et une date « until ». Deux paires de dates peuvent également être spécifiées pour créer des licences plus complexes.

Les éléments du tableau dwCount correspondent aux dates ou plages de dates spécifiées dans le tableau datetime . Si dwCategory est WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL et que datetime contient une paire de dates, dwCount contient un élément. Si datetime contient deux paires de dates (quatre éléments), dwCount doit contenir deux éléments, un pour chaque paire de dates.

Dans certains cas, les utilisateurs peuvent avoir reçu plusieurs licences pour un fichier. Par exemple, ils ont peut-être acquis une licence autorisant cinq parties jusqu’à la fin du mois, puis une deuxième licence pour des droits illimités. Dans ce cas, l’indicateur de DRM_LICENSE_STATE_DATA_VAGUE est défini dans dwVague (dwVague & DRM_LICENSE_STATE_DATA_VAGUE != 0) et le composant DRM utilise un algorithme pour déterminer l’ensemble le plus probable de droits qui ont été appliqués. Lorsqu’une licence expire, le composant DRM examine les licences restantes, et ainsi de suite jusqu’à ce que toutes les licences aient expiré.

Spécifications

Condition requise Valeur
En-tête
Wmdrmsdk.h

Voir aussi

Structures