Partager via


Ouverture d’une banque de messages

S’applique à : Outlook 2013 | Outlook 2016

Selon le profil, un client doit ouvrir une ou plusieurs banques de messages pendant une session classique. Ouvrir une banque de messages signifie accéder à un pointeur vers son implémentation IMsgStore : IMAPIProp . L’interface IMsgStore fournit des méthodes pour la notification, l’attribution de dossiers et l’accès aux dossiers et aux messages.

Les clients ouvrent des magasins de messages à l’ouverture de session et lorsqu’un profil est en cours de modification. Si votre client permet aux utilisateurs d’ajouter des magasins de messages au profil pendant une session active, vous pouvez les ouvrir immédiatement ou les ignorer jusqu’à la session suivante. En vous inscrivant aux notifications sur la table de la banque de messages, vous serez averti de la disponibilité d’une nouvelle banque de messages.

Pour ouvrir une banque de messages, vous devez disposer de son identificateur d’entrée. La plupart des clients accèdent aux identificateurs d’entrée des magasins de messages qu’ils souhaitent ouvrir via la table de la banque de messages. Toutefois, certains magasins de messages documentent le format de leurs identificateurs d’entrée, ce qui permet aux clients de contourner la table de la banque de messages et de construire l’identificateur d’entrée nécessaire. Ils peuvent passer cet identificateur d’entrée directement à IMAPISession ::OpenMsgStore et MAPI crée automatiquement une section de profil pour le fournisseur sans l’associer à un service de message.

Récupérer un identificateur d’entrée à partir de la table de la banque de messages

  1. Appelez IMAPISession ::GetMsgStoresTable pour ouvrir la table de la banque de messages.

  2. Appelez IMAPITable ::SetColumns pour limiter la table à un petit jeu de colonnes qui inclut les colonnes suivantes :

    • PR_PROVIDER_DISPLAY ou PR_DISPLAY_NAME
    • PR_ENTRYID propriétés
    • PR_MDB_PROVIDER
    • PR_RESOURCE_FLAGS
  3. Créez une restriction pour filtrer la ligne qui représente la banque de messages à ouvrir. Pour plus d’informations sur la recherche de la banque de messages par défaut, consultez Ouverture du magasin de messages par défaut. Pour rechercher un magasin de messages par nom, appliquez l’une des restrictions de propriété suivantes :

    • Mettre en correspondance PR_PROVIDER_DISPLAY (PidTagProviderDisplay) avec le nom général de ce type de magasin de messages. Par exemple, PR_PROVIDER_DISPLAY peut être défini sur « Dossiers personnels ».

    • Faites correspondre PR_MDB_PROVIDER (PidTagStoreProvider) avec le MAPIUID spécifique pour ce type de magasin de messages.

    • Faites correspondre PR_DISPLAY_NAME (PidTagDisplayName) avec le nom de cette banque de messages particulière. Par exemple, PR_DISPLAY_NAME peut être défini sur « Mes messages pour l’année fiscale 2010 ».

  4. Appelez HrQueryAllRows pour récupérer la ligne appropriée à partir de la table de la banque de messages. L’identificateur d’entrée de la ligne sera inclus dans le tableau de valeurs de propriété pour le membre aRow du jeu de lignes vers lequel pointe le paramètre pprows .

  5. Appelez FreeProws pour libérer l’ensemble de lignes pointé par pprows.

  6. Libérez la table de la banque de messages en appelant sa méthode IUnknown ::Release .

Si vous avez créé un identificateur d’entrée personnalisé pour l’ouverture de la banque de messages, appelez la fonction WrapStoreEntryID pour la convertir en identificateur d’entrée standard.

Une fois que vous disposez de l’identificateur d’entrée d’une banque de messages, appelez l’une des méthodes suivantes pour l’ouvrir :

Appelez OpenMsgStore si vous devez spécifier diverses options spéciales pour la banque de messages. OpenMsgStore vous permet de supprimer l’affichage des boîtes de dialogue, d’identifier la banque de messages en tant que magasin temporaire ou non, de définir des niveaux d’accès et de différer les erreurs. OpenEntry vous permet uniquement de définir des niveaux d’accès et de différer les erreurs.

La définition de l’indicateur MDB_NO_MAIL indique à MAPI que la banque de messages ne sera pas utilisée pour envoyer ou recevoir des messages. MAPI n’informe pas le spouleur MAPI de l’existence de cette banque de messages. L’indicateur MDB_TEMPORARY désigne une banque de messages comme temporaire, ce qui implique qu’elle ne peut pas être utilisée pour stocker des informations permanentes. Les magasins de messages temporaires n’apparaissent pas dans la table de la banque de messages.

Voir aussi