Partager via


Table d’état et objets d’état

S’applique à : Outlook 2013 | Outlook 2016

MAPI fournit une table contenant des informations sur les status du sous-système MAPI, du spouleur MAPI, du carnet d’adresses ou d’un fournisseur de services particulier. Vous pouvez accéder à cette table en appelant IMAPISession ::GetStatusTable.

Chaque ligne de la table status représente un objet status implémenté par MAPI ou un fournisseur de services. Vous pouvez utiliser un objet status pour afficher la feuille des propriétés de configuration d’un fournisseur, modifier le mot de passe d’un fournisseur, charger ou télécharger des messages et communiquer avec un fournisseur de transport particulier.

Il existe deux façons d’accéder à un objet status :

  • Par le biais de la table status

  • Via la méthode OpenStatusEntry d’un objet d’ouverture de session

Étant donné que les objets d’ouverture de session ne sont pas disponibles pour les clients, vous devez utiliser la table status pour accéder aux objets status. L’approche de table status est indirecte, nécessitant quelques appels avant que l’objet status soit ouvert et qu’un pointeur vers son implémentation IMAPIStatus soit retourné.

Pour utiliser la table status pour ouvrir un objet status

  1. Appelez IMAPIStatus ::GetStatusTable pour récupérer un pointeur IMAPITable .

  2. Appelez la méthode IMAPITable ::SetColumns de la table status pour limiter le jeu de colonnes à PR_ENTRYID (PidTagEntryId), PR_RESOURCE_TYPE (PidTagResourceType) et PR_DISPLAY_NAME (PidTagDisplayName).

  3. Limitez la vue table à un objet status particulier. Pour les implémentations MAPI, un client peut définir une restriction de propriété à l’aide de PR_RESOURCE_TYPE. Pour les implémentations de fournisseur de services, un client peut restreindre sur PR_PROVIDER_DISPLAY (PidTagProviderDisplay), le nom du fournisseur ou sur PR_PROVIDER_DLL_NAME (PidTagProviderDllName), le nom du fichier DLL du fournisseur.

  4. Appelez IMAPITable ::Restrict pour définir la restriction.

  5. Appelez HrQueryAllRows, en passant la structure SPropertyRestriction, pour récupérer la ligne qui représente le status du fournisseur.

  6. Appelez IMAPISession ::OpenEntry, en spécifiant l’identificateur d’entrée à partir de la ligne de table status, pour ouvrir l’objet status et récupérer un pointeur IMAPIStatus.

Pour afficher une feuille de propriétés, appelez la méthode IMAPIStatus ::SettingsDialog de l’objet status pour le fournisseur cible. SettingsDialog affiche une feuille de propriétés pour afficher et, dans certains cas, modifier les propriétés de configuration d’un fournisseur.

Pour communiquer avec un fournisseur de transport, appelez la méthode IMAPIStatus ::ValidateState de son objet status. ValidateState peut reconfigurer un fournisseur de transport, empêcher le fournisseur d’afficher une interface utilisateur et contrôler une session qui implique le téléchargement d’en-têtes de message à partir d’un serveur distant, en fonction des indicateurs que vous transmettez. Par exemple, pour annuler le téléchargement des en-têtes distants, transmettez l’indicateur ABORT_XP_HEADER_OPERATION à ValidateState. Pour vous connecter ou vous déconnecter du serveur distant, passez FORCE_XP_CONNECT ou FORCE_XP_DISCONNECT. Pour reconfigurer le fournisseur, passez CONFIG_CHANGED.

Les clients qui implémentent l’envoi ou la réception de messages à la demande appellent la méthode IMAPIStatus ::FlushQueues d’un fournisseur de transport ou du spouleur MAPI. Vous pouvez passer trois indicateurs dans la méthode : FLUSH_UPLOAD, FLUSH_DOWNLOAD et FLUSH_FORCE. FLUSH_UPLOAD indique au fournisseur ou au spouleur MAPI d’envoyer tous les messages en attente dans la file d’attente de sortie tandis que FLUSH_DOWNLOAD indique au fournisseur ou au spouleur MAPI de recevoir les messages entrants. FLUSH_FORCE peut être défini avec l’un des autres indicateurs pour que l’objet status effectue le vidage, quel que soit le minutage.

Ne vous attendez pas à pouvoir appeler SettingsDialog ou ChangePassword sur un sous-système MAPI, un spouleur MAPI ou un carnet d’adresses status objets. Le sous-système et les objets de carnet d’adresses status prennent uniquement en charge ValidateState ; l’objet spouleur MAPI status prend en charge FlushQueues en plus de ValidateState.

Voir aussi

Tables d’état

Objets d’état MAPI