IABLogon::OpenEntry
S’applique à : Outlook 2013 | Outlook 2016
Ouvre un conteneur, un utilisateur de messagerie ou une liste de distribution et retourne un pointeur vers une implémentation d’interface pour fournir un accès supplémentaire.
HRESULT OpenEntry(
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
ULONG ulFlags,
ULONG FAR * lpulObjType,
LPUNKNOWN FAR * lppUnk
);
Paramètres
cbEntryID
[in] Nombre d’octets dans l’identificateur d’entrée vers lequel pointe le paramètre lpEntryID .
lpEntryID
[in] Pointeur vers l’identificateur d’entrée du conteneur, de l’utilisateur de messagerie ou de la liste de distribution à ouvrir.
lpInterface
[in] Pointeur vers l’identificateur d’interface (IID) qui représente l’interface à utiliser pour accéder à l’objet ouvert. La transmission de la valeur NULL renvoie l’identificateur de l’interface standard de l’objet. Pour les conteneurs, l’interface standard est IABContainer : IMAPIContainer. Les interfaces standard pour les objets de carnet d’adresses sont IDistList : IMAPIContainer pour une liste de distribution et IMailUser : IMAPIProp pour un utilisateur de messagerie.
ulFlags
[in] Masque de bits d’indicateurs qui contrôle la façon dont l’objet est ouvert. Les indicateurs suivants peuvent être définis :
MAPI_BEST_ACCESS
Demande que l’objet soit ouvert avec les autorisations réseau maximales autorisées pour l’utilisateur et l’accès maximal à l’application cliente. Par exemple, si le client dispose d’une autorisation de lecture/écriture, l’objet doit être ouvert avec l’autorisation de lecture/écriture ; si le client dispose d’une autorisation en lecture seule, l’objet doit être ouvert avec l’autorisation en lecture seule.
MAPI_DEFERRED_ERRORS
Permet à la méthode OpenEntry de retourner correctement, éventuellement avant que le client appelant n’ait entièrement accédé à l’objet. Si l’objet n’est pas accessible, un appel d’objet ultérieur peut générer une erreur.
MAPI_MODIFY
Demande l’autorisation de lecture/écriture. Par défaut, les objets sont ouverts avec un accès en lecture seule, et les clients ne doivent pas supposer que l’autorisation de lecture/écriture a été accordée.
lpulObjType
[out] Pointeur vers le type de l’objet ouvert.
lppUnk
[out] Pointeur vers un pointeur vers l’objet ouvert.
Remarques
S_OK
L’objet a été ouvert avec succès.
MAPI_E_NO_ACCESS
Soit l’utilisateur dispose d’autorisations insuffisantes pour ouvrir l’objet, soit une tentative d’ouverture d’un objet en lecture seule avec une autorisation de lecture/écriture a été effectuée.
MAPI_E_NOT_FOUND
L’identificateur d’entrée spécifié par lpEntryID ne représente pas un objet.
MAPI_E_UNKNOWN_ENTRYID
L’identificateur d’entrée dans le paramètre lpEntryID n’est pas d’un format reconnu par le fournisseur de carnet d’adresses.
MAPI appelle la méthode OpenEntry pour ouvrir un conteneur, un utilisateur de messagerie ou une liste de distribution.
Remarques pour les responsables de l’implémentation
Avant que MAPI appelle votre méthode OpenEntry , il détermine que l’identificateur d’entrée dans le paramètre lpEntryID vous appartient et non à un autre fournisseur. POUR ce faire, MAPI fait correspondre la structure MAPIUID dans l’identificateur d’entrée avec le MAPIUID que vous avez inscrit en appelant la méthode IMAPISupport ::SetProviderUID au démarrage.
Ouvrez l’objet en lecture seule, sauf si l’indicateur MAPI_MODIFY ou MAPI_BEST_ACCESS est défini dans le paramètre ulFlags . Si vous n’autorisez pas la modification de l’objet demandé, n’ouvrez pas du tout l’objet et retournez MAPI_E_NO_ACCESS.
Si MAPI passe NULL pour lpEntryID, ouvrez le conteneur racine dans votre hiérarchie de conteneurs.
L’objet que vous êtes invité à ouvrir peut être un objet copié à partir d’un autre fournisseur. Dans ce cas, il prend en charge la propriété PR_TEMPLATEID (PidTagTemplateid). Si l’objet prend en charge cette propriété, appelez la méthode IMAPISupport ::OpenTemplateID pour établir une liaison au code de cette entrée dans le fournisseur étranger, en passant PR_TEMPLATEID dans le paramètre lpTemplateID et 0 dans le paramètre ulTemplateFlags . IMAPISupport ::OpenTemplateID transmet ces informations au fournisseur étranger dans un appel à la méthode IABLogon ::OpenTemplateID du fournisseur étranger. Si IMAPISupport ::OpenTemplateID génère une erreur, généralement parce que le fournisseur étranger n’est pas disponible ou n’est pas inclus dans le profil, essayez de continuer en traitant l’entrée indépendante comme étant en lecture seule. Pour plus d’informations sur l’ouverture d’entrées de carnet d’adresses étrangères, consultez Agir en tant que fournisseur de carnets d’adresses d’hôte.