Partager via


Méthode IWMDMStorage ::GetRights (mswmdm.h)

La méthode GetRights récupère les informations de droits d’un stockage sous licence.

Syntaxe

HRESULT GetRights(
  [out]     PWMDMRIGHTS *ppRights,
  [out]     UINT        *pnRightsCount,
  [in, out] BYTE [8]    abMac
);

Paramètres

[out] ppRights

Pointeur vers un tableau de structures WMDMRIGHTS qui contiennent les droits de stockage. Ce paramètre est inclus dans le code d’authentification du message. Windows Media Gestionnaire de périphériques alloue cette mémoire et l’application doit la libérer avec CoTaskMemFree.

[out] pnRightsCount

Pointeur vers le nombre de structures WMDMRIGHTS dans le tableau ppRights . Ce paramètre est inclus dans le code d’authentification du message.

[in, out] abMac

Tableau d’octets contenant le code d’authentification de message (MAC) pour les données de paramètre de cette méthode.

Valeur retournée

Cette méthode retourne un code HRESULT. Toutes les méthodes d’interface dans Windows Media Gestionnaire de périphériques peuvent retourner l’une des classes de codes d’erreur suivantes :

  • Codes d’erreur COM standard
  • Codes d’erreur Windows convertis en valeurs HRESULT
  • Codes d’erreur Gestionnaire de périphériques Windows Media
Pour obtenir une liste complète des codes d’erreur possibles, consultez Codes d’erreur.

Remarques

Les droits d’objet décrivent les autorisations d’utilisation pour le contenu multimédia numérique. Par exemple, la structure WMDMRIGHTS peut contenir des informations sur le nombre de fois où un fichier peut être lu et qui peut le lire. Cette méthode échoue s’il ne s’agit pas d’un fichier sous licence.

Le tableau ppRights est alloué par cette méthode et doit être libéré par l’application à l’aide de CoTaskMemFree, une fonction Win32 standard.

Pour recevoir les événements de progression de cet appel, utilisez IWMDMStorage4 ::GetRightsWithProgress.

Après avoir appelé cette méthode, une application peut calculer les valeurs de code d’authentification des messages (MAC) des paramètres et les comparer aux valeurs MAC de sortie pour s’assurer que les paramètres n’ont pas été falsifiés. L’exemple de code suivant montre une façon de procéder.

Exemples


CSecureChannelClient  *pSCClient;
IWMDMStorage  *pStorgae;

HMAC  hMAC;
BYTE  abMAC[WMDM_MAC_LENGTH];
BYTE  abMACVerify[WMDM_MAC_LENGTH];

hr = pStorage->GetRights(&pRights, &nRightsCount, abMAC);
if (SUCCEEDED(hr))
{
    //
    // First verify the integrity of the retrieved rights.
    //
    pSCClient->MACInit(&hMAC);
    pSCClient->MACUpdate(hMAC, (BYTE*)(pRights), 
                    sizeof(WMDMRIGHTS) * nRightsCount);
    pSCClient->MACUpdate(hMAC, (BYTE*)(&nRightsCount), 
                                 sizeof(nRightsCount));
    pSCClient->MACFinal(hMAC, (BYTE*)abMACVerify);
    if (memcmp(abMACVerify, abMAC, sizeof(abMAC)) != 0)
    {
        hr = WMDM_E_MAC_CHECK_FAILED;
    }
}


Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête mswmdm.h
Bibliothèque Mssachlp.lib

Voir aussi

IWMDMStorage Interface

Utilisation de canaux authentifiés sécurisés

WMDMRIGHTS