Compartilhar via


estrutura DRM_LICENSE_STATE_DATA (Wmdrmsdk.h)

A estrutura DRM_LICENSE_STATE_DATA contém informações sobre as restrições de licença para um direito de DRM.

Sintaxe

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

Membros

dwStreamId

Número de fluxo ao qual a licença se aplica. Deve ser 0, o que indica que a licença se aplica a todos os fluxos no arquivo.

dwCategory

Categoria de cadeia de caracteres a ser exibida. Consulte DRM_LICENSE_STATE_CATEGORY para obter valores possíveis e seu significado.

dwNumCounts

Número de itens fornecidos em dwCount. Esse valor normalmente é 0 ou 1.

dwCount[4]

Uma matriz de 0 ou 1 ou mais valores DWORD que representam o número de vezes que a ação especificada em dwCategory pode ser executada. Consulte Observações.

dwNumDates

Número de itens fornecidos em datetime. Normalmente, não são usadas mais do que duas datas, por exemplo, com uma licença válida de uma data até outra data.

datetime[4]

Uma matriz de uma ou mais estruturas FILETIME que representam uma ou mais datas na licença. O significado de uma data específica depende do valor de dwCategory.

dwVague

Zero ou mais dos seguintes sinalizadores combinados com um OR bit a bit:

Sinalizador Descrição
DRM_LICENSE_STATE_DATA_VAGUE Se definido, pode haver mais licenças que se aplicam ao conteúdo. A única maneira de ter certeza sobre as licenças individuais que se aplicam a uma determinada ID de chave é enumerar as licenças. Para fazer isso, chame IWMDRMLicenseManagement::CreateLicenseEnumeration, passando a ID da chave como o parâmetro bstrKID. Em seguida, use a interface IWMDRMLicense recuperada para examinar as licenças.
DRM_LICENSE_STATE_DATA_OPL_PRESENT Se definida, a licença inclui OPLs (níveis de proteção de saída) que devem ser recuperados e verificados no destino da saída do aplicativo.
DRM_LICENSE_STATE_DATA_SAP_PRESENT Se definido, o conteúdo deverá ser entregue usando o SAP (caminho de áudio seguro).

Comentários

Essa estrutura é recuperada chamando IWMDRMLicenseQuery::QueryLicenseState.

Se dwCategory for WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL, a matriz datetime normalmente conterá duas datas: uma data "from" e uma data "until". Dois pares de datas também podem ser especificados para criar licenças mais complexas.

Os elementos da matriz dwCount correspondem às datas ou intervalos de datas especificados na matriz datetime . Se dwCategory for WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL e datetime contiver um par de datas, dwCount conterá um elemento. Se datetime contiver dois pares de data (quatro elementos), dwCount deverá conter dois elementos, um para cada par de datas.

Em alguns casos, os usuários podem ter sido emitidos mais de uma licença para um arquivo. Por exemplo, eles podem ter adquirido uma licença que permitia cinco jogadas até o final do mês e, posteriormente, adquirido uma segunda licença para direitos ilimitados. Nesse caso, o sinalizador DRM_LICENSE_STATE_DATA_VAGUE é definido em dwVague (dwVague & DRM_LICENSE_STATE_DATA_VAGUE != 0) e o componente DRM usará um algoritmo para determinar o conjunto mais provável de direitos que foram aplicados. Quando uma licença expirar, o componente DRM examinará as licenças restantes e assim por diante até que todas as licenças expirem.

Requisitos

Requisito Valor
parâmetro
Wmdrmsdk.h

Confira também

Estruturas