IMAPIContainer::OpenEntry
S’applique à : Outlook 2013 | Outlook 2016
Ouvre un objet dans le conteneur, en retournant un pointeur d’interface pour 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 de l’objet à ouvrir. Si lpEntryID est défini sur NULL, le conteneur de niveau supérieur dans la hiérarchie du conteneur est ouvert.
lpInterface
[in] Pointeur vers l’identificateur d’interface (IID) qui représente l’interface à utiliser pour accéder à l’objet . Le passage de null entraîne le retour de l’identificateur de l’interface standard de l’objet. Pour les messages, l’interface standard est IMAPIMessageSite : IUnknown ; pour les dossiers, il s’agit de IMAPIFolder : 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’un accès en lecture seule, l’objet doit être ouvert avec un accès en lecture seule.
MAPI_DEFERRED_ERRORS
Permet à OpenEntry de retourner avec succès, éventuellement avant que l’objet ne soit entièrement disponible pour le client appelant. Si l’objet n’est pas disponible, effectuer un appel d’objet suivant 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 fonctionner sur l’hypothèse que l’autorisation de lecture/écriture a été accordée.
SHOW_SOFT_DELETES
Affiche les éléments actuellement marqués comme supprimés de manière réversible, c’est-à-dire qu’ils sont dans la phase de temps de conservation des éléments supprimés.
lpulObjType
[out] Pointeur vers le type de l’objet ouvert.
lppUnk
[out] Pointeur vers un pointeur vers l’implémentation de l’interface à utiliser pour accéder à l’objet ouvert.
Valeur renvoyée
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 conteneur.
Remarques
La méthode IMAPIContainer ::OpenEntry ouvre un objet dans un conteneur et retourne un pointeur vers une implémentation d’interface à utiliser pour un accès supplémentaire.
Remarques pour les appelants
Étant donné que les fournisseurs de services ne sont pas tenus de retourner une implémentation d’interface du type spécifié par l’identificateur d’interface dans le paramètre lpInterface, case activée la valeur vers laquelle pointe le paramètre lpulObjType. Si nécessaire, convertissez le pointeur retourné dans lppUnk en pointeur du type approprié.
Par défaut, les fournisseurs de services ouvrent des objets avec accès en lecture seule, sauf si vous définissez l’indicateur MAPI_MODIFY ou MAPI_BEST_ACCESS. Quand l’un de ces indicateurs est défini, les fournisseurs de services tentent de retourner un objet modifiable. Toutefois, ne supposez pas que, étant donné que vous avez demandé un objet modifiable, l’objet ouvert dispose d’une autorisation de lecture/écriture. Planifiez le risque d’échec d’une modification ultérieure ou récupérez la propriété PR_ACCESS_LEVEL de l’objet pour déterminer le niveau d’accès accordé par OpenEntry.