Partager via


IMsgStore::OpenEntry

S’applique à : Outlook 2013 | Outlook 2016

Ouvre un dossier ou un message et retourne 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, ou NULL. Si lpEntryID est défini sur NULL, OpenEntry ouvre le dossier racine de la banque de messages.

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 entraîne le retour de l’interface standard de l’objet (IMAPIFolder pour les dossiers et IMessage pour les messages).

ulFlags

[in] Masque de bits d’indicateurs qui contrôle la façon dont l’objet est ouvert. Les indicateurs suivants peuvent être utilisés :

MAPI_BEST_ACCESS

Demande que l’objet soit ouvert à l’aide des autorisations réseau maximales autorisées pour l’utilisateur et de l’accès maximal à l’application cliente. Par exemple, si le client dispose d’une autorisation de lecture/écriture, l’objet doit être ouvert à l’aide de l’autorisation de lecture/écriture ; si le client dispose d’une autorisation en lecture seule, l’objet doit être ouvert à l’aide de l’autorisation 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 une autorisation en lecture seule, et les clients ne doivent pas fonctionner selon l’hypothèse selon laquelle l’autorisation de lecture/écriture est accordée.

lpulObjType

[out] Pointeur vers le type de l’objet ouvert.

lppUnk

[out] Pointeur vers un pointeur vers l’objet ouvert.

Valeur renvoyée

S_OK

L'appel a r�ussi et a renvoy� la valeur attendue ou les valeurs.

MAPI_E_NO_ACCESS

Une tentative a été effectuée pour modifier un objet en lecture seule ou pour accéder à un objet pour lequel l’utilisateur ne dispose pas des autorisations suffisantes.

MAPI_NO_CACHE

Lorsqu’un magasin est ouvert en mode mis en cache, un client ou un fournisseur de services peut appeler IMsgStore ::OpenEntry, en définissant l’indicateur MAPI_NO_CACHE pour ouvrir un élément ou un dossier sur le magasin distant. Si vous ouvrez la banque de messages avec l’indicateur MDB_ONLINE sur le serveur distant, vous n’avez pas besoin d’utiliser l’indicateur MAPI_NO_CACHE.

Remarques

La méthode IMsgStore ::OpenEntry ouvre un dossier ou un message et retourne un pointeur vers une interface qui peut être utilisée pour un accès supplémentaire.

Importante

Lorsque vous ouvrez des entrées de dossier sur un magasin public, telles que des dossiers et des messages, utilisez IMsgStore ::OpenEntry au lieu de IMAPISession ::OpenEntry. Cela garantit que les dossiers publics fonctionnent correctement lorsque plusieurs comptes Exchange sont définis dans un profil.

Remarques pour les appelants

Les dossiers et les messages sont automatiquement ouverts avec l’autorisation en lecture seule, sauf si vous définissez l’indicateur MAPI_MODIFY ou MAPI_BEST_ACCESS dans le paramètre ulFlags . La définition de l’un de ces indicateurs ne garantit pas un type particulier d’autorisation ; les autorisations qui vous sont accordées dépendent du fournisseur de la banque de messages, de votre niveau d’accès et de l’objet. Pour déterminer le niveau d’accès de l’objet ouvert, récupérez sa propriété PR_ACCESS_LEVEL (PidTagAccessLevel).

Bien que IMsgStore ::OpenEntry puisse être utilisé pour ouvrir n’importe quel dossier ou message, il est généralement plus rapide d’utiliser la méthode IMAPIContainer ::OpenEntry si vous avez accès au dossier parent du dossier ou du message à ouvrir.

Vérifiez la valeur retournée dans le paramètre lpulObjType pour déterminer si le type d’objet retourné correspond à ce que vous attendiez. Si le type d’objet n’est pas le type attendu, convertissez le pointeur du paramètre lppUnk en pointeur du type approprié. Par exemple, si vous ouvrez un dossier, castez lppUnk en pointeur de type LPMAPIFOLDER.

Référence MFCMAPI

Pour voir un exemple de code MFCMAPI, consultez le tableau suivant.

Fichier Fonction Commentaire
MAPIFunctions.cpp
CallOpenEntry
MFCMAPI utilise la méthode IMsgStore ::OpenEntry pour ouvrir l’objet associé à un ID d’entrée.

Voir aussi

IMAPIContainer::OpenEntry

IMsgStore : IMAPIProp

MFCMAPI comme un exemple de Code