Autorisations pour les propriétés et objets MAPI
S’applique à : Outlook 2013 | Outlook 2016
L’autorisation d’accès, ou l’ensemble d’opérations permissables, peut être une caractéristique des objets MAPI et des propriétés individuelles prises en charge par ces objets. L’accès aux objets est déterminé par le parent d’un objet. Pour un message, son dossier détermine les autorisations d’accès. Pour un utilisateur de messagerie ou une liste de distribution, son conteneur de carnet d’adresses effectue cette détermination. Lorsqu’un objet tel qu’un message réside dans deux dossiers, les autorisations pour les deux copies de l’objet peuvent être différentes.
Les clients utilisant ces objets peuvent demander le niveau d’accès le plus élevé autorisé pour l’objet en définissant l’indicateur MAPI_BEST_ACCESS sur l’appel IMAPISession ::OpenEntry . Selon le fournisseur de services qui implémente l’objet, le client peut ou non se voir accorder le niveau d’accès nécessaire. Les clients peuvent déterminer le niveau d’accès qui leur a été accordé en appelant la méthode GetProps de l’objet pour récupérer la propriété PR_ACCESS (PidTagAccess). Toutefois, étant donné que le fournisseur de services doit générer dynamiquement la valeur de cette propriété, il est recommandé aux clients de la récupérer uniquement si nécessaire.
Pour déterminer si un conteneur tel qu’un dossier, un conteneur de carnet d’adresses ou une liste de distribution autorise la modification, appelez sa méthode GetProps pour récupérer la propriété PR_ACCESS_LEVEL (PidTagAccessLevel). L’accès au niveau du conteneur affecte les clients en termes d’affichage de leurs interfaces utilisateur. Cela a également un impact sur les implémenteurs d’objets au sein des conteneurs en termes d’affichage de leur interface utilisateur et de leur implémentation générale.
L’accès à une propriété particulière est déterminé par le schéma de propriété configuré par MAPI pour l’objet propriétaire de la propriété. Les schémas de propriété spécifient l’ensemble des propriétés obligatoires et facultatives d’un objet et leur autorisation d’accès. Contrairement à l’accès aux objets qui est déterminé par le parent de l’objet, l’accès aux propriétés est global. Chaque objet, quelles que soient les exigences d’accès du parent de l’objet, a les mêmes autorisations pour la propriété que celles déterminées par le schéma.
Lorsqu’une propriété est en lecture seule, elle est toujours disponible avec un appel GetProps ou OpenProperty . Toutefois, selon l’implémentation de l’objet prenant en charge la propriété, il existe deux résultats possibles pour la méthode SetProps pour modifier une propriété et la méthode DeleteProps pour la supprimer :
Échec et retour MAPI_E_NO_ACCESS
Réussir sans aucune action
L’accès aux propriétés et aux objets peut également être récupéré ou défini à l’aide de l’interface IPropData qui hérite de l’interface IMAPIProp . MAPI fournit une implémentation d’IPropData basée sur des données en mémoire. Les fournisseurs de services peuvent utiliser IPropData pour implémenter IMAPIProp dans certaines circonstances, par exemple pour leur objet status ou s’ils utilisent une base de données qui n’a pas de transactions intégrées. IPropData fonctionne exclusivement en mémoire, ce qui rend inutile le verrouillage et le déverrouillage des données.