Fonction DRMCreateBoundLicense (msdrm.h)
[Le Kit de développement logiciel (SDK) AD RMS tirant parti des fonctionnalités exposées par
le client dans Msdrm.dll est disponible dans Windows Server 2008, Windows Vista, Windows Server 2008 R2, Windows 7, Windows Server 2012 et Windows 8. Il peut être modifié ou
non disponible dans les versions suivantes. Utilisez plutôt active Directory Rights Management Services SDK 2.1,
qui tire parti des fonctionnalités exposées par le client dans Msipc.dll.]
La fonction DRMCreateBoundLicense permet à une application d’examiner ou d’exercer les droits sur une licence stockée localement.
Syntaxe
DRMEXPORT HRESULT UDAPICALL DRMCreateBoundLicense(
[in] DRMENVHANDLE hEnv,
[in] DRMBOUNDLICENSEPARAMS *pParams,
[in] PWSTR wszLicenseChain,
[out] DRMHANDLE *phBoundLicense,
[out] DRMHANDLE *phErrorLog
);
Paramètres
[in] hEnv
Un handle vers un environnement ; le handle est créé à l’aide de la fonction DRMInitEnvironment .
[in] pParams
Pointeur vers une structure DRMBOUNDLICENSEPARAMS qui spécifie des options supplémentaires ; Pour plus d’informations, consultez la section Remarques. Le principal spécifié ici est celui auquel l’application essaiera de lier. Si vous transmettez la valeur NULL pour identifier le principal ou le groupe de droits, le premier principal ou groupe de droits de la licence sera utilisé.
[in] wszLicenseChain
Pointeur vers une chaîne Unicode terminée par null qui contient la licence de l’utilisateur final (ou chaîne de licence).
[out] phBoundLicense
Pointeur vers un handle qui reçoit la licence liée. Le DRMHANDLE transmis via phBoundLicense permet à une application de parcourir tous les objets de la licence (tels que les principaux ou les droits) et les attributs (comme le nombre maximal de lecture). Une licence liée regroupe les informations de droits dupliquées dans la licence et supprime toutes les informations de droits qui ne sont pas disponibles pour l’utilisateur actuel.
[out] phErrorLog
Ce paramètre doit avoir la valeur NULL.
Valeur retournée
Si la fonction réussit, la fonction retourne S_OK.
Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles incluent, sans s’y limiter, celles de la liste suivante. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.
Notes
L’appel de cette fonction lie une licence au ou aux droits spécifiés dans la structure DRMBOUNDLICENSEPARAMS passée au paramètre pParams . Si un droit demandé ne peut pas être exercé par l’utilisateur actuel, la fonction échoue. Notez également que vous devez appeler DRMSetMetaData et spécifier une valeur pour le paramètre wszContentId avant d’appeler cette fonction et que cette valeur doit être identique à l’ID défini dans la structure DRMBOUNDLICENSEPARAMS , sinon la fonction échoue.
Si la fonction réussit, elle retourne un handle à la licence liée qui peut être examiné et permet également à une application d’exercer le droit lié. Cette fonction ne décrémente pas les droits mesurés. La décrémentation des droits mesurés lors de l’utilisation est de la responsabilité de l’application.
Lorsque la liaison de licence échoue en raison d’une liste de révocation manquante ou obsolète, la valeur de retour n’indique pas quelle licence ou quel certificat est à l’origine de l’erreur. Il peut s’agir de la licence de l’utilisateur final, du certificat de compte de droits de l’utilisateur, d’un certificat de licence client ou d’une autre licence ou certificat. Vous devez appeler DRMAcquireAdvisories (et DRMRegisterRevocationList) pour chaque certificat jusqu’à ce que l’erreur ne se produise pas.
Les authentificateurs principaux requis pour une licence doivent être chargés avant d’appeler cette fonction. Toutefois, l’authentificateur peut continuer à fonctionner une fois la licence créée.
Une fois que vous avez terminé d’utiliser le handle de licence, fermez-le en appelant la fonction DRMCloseHandle . DRMCloseHandle ferme le handle à la bibliothèque et supprime la licence de la mémoire.
Le handle retourné par cette fonction peut être transmis à l’une des fonctions suivantes pour naviguer plus en profondeur dans la hiérarchie des licences :
- DRMGetBoundLicenseAttribute
- DRMGetBoundLicenseAttributeCount
- DRMGetBoundLicenseObject
- DRMGetBoundLicenseObjectCount
Spécifications
Plateforme cible | Windows |
En-tête | msdrm.h |
Bibliothèque | Msdrm.lib |
DLL | Msdrm.dll |