Partager via


IMsgServiceAdmin::CreateMsgService

S’applique à : Outlook 2013 | Outlook 2016

Déconseillé : L’utilisation de IMsgServiceAdmin2 ::CreateMsgServiceEx est recommandée. Ajoute un service de message au profil actuel.

HRESULT CreateMsgService(
  LPSTR lpszService,
  LPSTR lpszDisplayName,
  ULONG_PTR ulUIParam,
  ULONG ulFlags    
);

Paramètres

lpszService

[in] Pointeur vers le nom du service de message à ajouter. Ce nom de service de message doit apparaître dans la section [Services] du fichier MapiSvc.inf.

lpszDisplayName

[in] Pointeur vers le nom complet du service de messagerie à ajouter. Le paramètre lpszDisplayName est ignoré si le service de message a défini la propriété PR_DISPLAY_NAME (PidTagDisplayName) dans le fichier MapiSvc.inf.

ulUIParam

[in] Handle de la fenêtre parente de toutes les boîtes de dialogue ou fenêtres affichées par cette méthode.

ulFlags

[in] Masque de bits d’indicateurs qui contrôle la façon dont le service de message est installé. Les indicateurs suivants peuvent être définis :

MAPI_UNICODE

Les paramètres lpszService et lpszDisplayName doivent être convertis en LPWSTR et interprétés comme des chaînes Unicode.

SERVICE_NO_RESTART_WARNING

Lors de l’ajout d’un nouveau service de messagerie au profil, le sous-système MAPI, en fonction de différents critères et circonstances, détermine souvent que cette action nécessite un redémarrage d’Outlook. Si l’indicateur SERVICE_NO_RESTART_WARNING n’est pas inclus et que l’interface utilisateur est autorisée (en fonction des indicateurs SERVICE_UI_ALWAYS et SERVICE_UI_ALLOWED) et qu’au moins un processus est connecté au profil actuel, cette fonction affiche le message « Vous devez redémarrer Outlook pour que ces modifications prennent effet ». L’inclusion de l’indicateur SERVICE_NO_RESTART_WARNING supprime l’affichage de ce message d’avertissement.

SERVICE_UI_ALLOWED

L’interface utilisateur de configuration du service de message est autorisée si nécessaire.

SERVICE_UI_ALWAYS

Le service de message affiche sa feuille de propriétés de configuration.

Valeur renvoyée

S_OK

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

MAPI_E_NOT_FOUND

Le nom du service de message ne figure pas dans la section [Services] de MapiSvc.inf.

Remarques

La méthode IMsgServiceAdmin ::CreateMsgService ajoute un service de message au profil actuel. CreateMsgService appelle la fonction de point d’entrée du service de message pour effectuer des tâches de configuration spécifiques au service. Si l’indicateur SERVICE_UI_ALLOWED est défini dans le paramètre ulFlags , le service de message en cours d’installation peut afficher une feuille de propriétés pour permettre à l’utilisateur de configurer ses paramètres.

Le fichier MapiSvc.inf contient la liste des fournisseurs qui composent un service de message et les propriétés de chacun d’eux. CreateMsgService crée d’abord une section de profil pour le service de message, puis copie toutes les informations relatives à ce service à partir du fichier MapiSvc.inf dans le profil, en créant de nouvelles sections pour chaque fournisseur.

Une fois toutes les informations copiées à partir de MapiSvc.inf, la fonction de point d’entrée du service de message est appelée avec la valeur MSG_SERVICE_CREATE définie dans le paramètre ulContext . Si l’indicateur SERVICE_UI_ALLOWED est défini dans le paramètre ulFlags de la méthode CreateMsgService, les valeurs des paramètres ulUIParam et ulFlags sont également passées lorsque la fonction de point d’entrée du service de message est appelée. Les fournisseurs de services doivent afficher leurs feuilles de propriétés de configuration afin que les utilisateurs puissent configurer le service de messagerie.

Remarques pour les appelants

CreateMsgService ne retourne pas la structure MAPIUID pour le service de message qui a été ajouté au profil.

Pour récupérer le MAPIUID pour le service de message créé, procédez comme suit :

  1. Appelez la méthode IMsgServiceAdmin ::GetMsgServiceTable pour obtenir la table d’administration du service de messages.

  2. Recherchez la ligne qui représente le service de message en plaçant une restriction sur la table qui correspond à la propriété PR_SERVICE_NAME (PidTagServiceName) avec le nom du service de message.

  3. Récupérez la propriété PR_SERVICE_UID (PidTagServiceUid) du service.

  4. Transmettez la valeur de la propriété PR_SERVICE_UID dans le paramètre lpUid à la méthode IMsgServiceAdmin ::ConfigureMsgService pour configurer le service.

Attention

L’implémentation Microsoft Outlook 2010 du sous-système MAPI ne prend pas en charge MAPI_UNICODE et échoue si elle est utilisée.

Importante

Le SERVICE_NO_RESTART_WARNING ulFlags peut ne pas être défini dans le fichier d’en-tête téléchargeable que vous avez actuellement, auquel cas vous pouvez l’ajouter à votre code à l’aide de la valeur suivante : #define SERVICE_NO_RESTART_WARNING 0x00000080

Référence MFCMAPI

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

Fichier Fonction Commentaire
MAPIProfileFunctions.cpp
HrAddServiceToProfile
MFCMAPI utilise la méthode IMsgServiceAdmin ::CreateMsgService pour ajouter un service à un profil.

Voir aussi

IMsgServiceAdmin : IUnknownMFCMAPI en tant qu’exemple de code