IMsgServiceAdmin::CreateMsgService
Gilt für: Outlook 2013 | Outlook 2016
Veraltet: Die Verwendung von IMsgServiceAdmin2::CreateMsgServiceEx wird empfohlen. Fügt dem aktuellen Profil einen Nachrichtendienst hinzu.
HRESULT CreateMsgService(
LPSTR lpszService,
LPSTR lpszDisplayName,
ULONG_PTR ulUIParam,
ULONG ulFlags
);
Parameter
lpszService
[in] Ein Zeiger auf den Namen des hinzuzufügenden Nachrichtendiensts. Dieser Nachrichtendienstname muss im Abschnitt [Services] der Datei MapiSvc.inf angezeigt werden.
lpszDisplayName
[in] Ein Zeiger auf den Anzeigenamen des hinzuzufügenden Nachrichtendiensts. Der lpszDisplayName-Parameter wird ignoriert, wenn der Nachrichtendienst die eigenschaft PR_DISPLAY_NAME (PidTagDisplayName) in der Datei MapiSvc.inf festgelegt hat.
ulUIParam
[in] Ein Handle für das übergeordnete Fenster aller Dialogfelder oder Fenster, die von dieser Methode angezeigt werden.
ulFlags
[in] Eine Bitmaske von Flags, die steuert, wie der Nachrichtendienst installiert wird. Die folgenden Flags können festgelegt werden:
MAPI_UNICODE
Die Parameter lpszService und lpszDisplayName sollten in LPWSTR umgewandelt und als Unicode-Zeichenfolgen interpretiert werden.
SERVICE_NO_RESTART_WARNING
Beim Hinzufügen eines neuen Nachrichtendiensts zum Profil ermittelt das MAPI-Subsystem basierend auf verschiedenen Umständen und Kriterien häufig, dass diese Aktion einen Neustart von Outlook erfordert. Wenn das SERVICE_NO_RESTART_WARNING-Flag nicht enthalten ist und die Benutzeroberfläche (basierend auf den SERVICE_UI_ALWAYS- und SERVICE_UI_ALLOWED-Flags) zulässig ist und mindestens ein Prozess im aktuellen Profil angemeldet ist, zeigt diese Funktion die Meldung "Sie müssen Outlook neu starten, damit diese Änderungen wirksam werden." Durch das Einschließen des SERVICE_NO_RESTART_WARNING-Flags wird die Anzeige dieser Warnmeldung unterdrückt.
SERVICE_UI_ALLOWED
Die Benutzeroberfläche für die Nachrichtendienstkonfiguration ist bei Bedarf zulässig.
SERVICE_UI_ALWAYS
Der Nachrichtendienst zeigt sein Konfigurationseigenschaftenblatt an.
Rückgabewert
S_OK
Der Aufruf erfolgreich ausgef�hrt und der erwartete Wert oder Werte zur�ckgegeben hat.
MAPI_E_NOT_FOUND
Der Name des Nachrichtendiensts befindet sich nicht im Abschnitt [Services] von MapiSvc.inf.
Hinweise
Die IMsgServiceAdmin::CreateMsgService-Methode fügt dem aktuellen Profil einen Nachrichtendienst hinzu. CreateMsgService ruft die Einstiegspunktfunktion des Nachrichtendiensts auf, um dienstspezifische Konfigurationsaufgaben auszuführen. Wenn das SERVICE_UI_ALLOWED-Flag im ulFlags-Parameter festgelegt ist, kann der zu installierende Nachrichtendienst ein Eigenschaftenblatt anzeigen, damit der Benutzer seine Einstellungen konfigurieren kann.
Die Datei MapiSvc.inf enthält die Liste der Anbieter, aus denen ein Nachrichtendienst besteht, und die Eigenschaften für jeden. CreateMsgService erstellt zunächst einen neuen Profilabschnitt für den Nachrichtendienst und kopiert dann alle Informationen für diesen Dienst aus der Datei MapiSvc.inf in das Profil, wobei neue Abschnitte für jeden Anbieter erstellt werden.
Nachdem alle Informationen aus MapiSvc.inf kopiert wurden, wird die Einstiegspunktfunktion des Nachrichtendiensts mit dem im ulContext-Parameter festgelegten MSG_SERVICE_CREATE Wert aufgerufen. Wenn das flag SERVICE_UI_ALLOWED im ulFlags-Parameter der CreateMsgService-Methode festgelegt ist, werden auch die Werte in den Parametern ulUIParam und ulFlags übergeben, wenn die Einstiegspunktfunktion des Nachrichtendiensts aufgerufen wird. Dienstanbieter sollten ihre Konfigurationseigenschaftenblätter anzeigen, damit Benutzer den Nachrichtendienst konfigurieren können.
Hinweise für Aufrufer
CreateMsgService gibt nicht die MAPIUID-Struktur für den Nachrichtendienst zurück, der dem Profil hinzugefügt wurde.
Gehen Sie wie folgt vor, um die MAPIUID für den erstellten Nachrichtendienst abzurufen:
Rufen Sie die IMsgServiceAdmin::GetMsgServiceTable-Methode auf, um die Verwaltungstabelle des Nachrichtendiensts abzurufen.
Suchen Sie die Zeile, die den Nachrichtendienst darstellt, indem Sie eine Einschränkung für die Tabelle festlegen, die der eigenschaft PR_SERVICE_NAME (PidTagServiceName) mit dem Namen des Nachrichtendiensts entspricht.
Rufen Sie die eigenschaft PR_SERVICE_UID (PidTagServiceUid) des Diensts ab.
Übergeben Sie den Wert der eigenschaft PR_SERVICE_UID im lpUid-Parameter an die IMsgServiceAdmin::ConfigureMsgService-Methode , um den Dienst zu konfigurieren.
Achtung
Die Microsoft Outlook 2010 Implementierung des MAPI-Subsystems unterstützt MAPI_UNICODE nicht und schlägt fehl, wenn es verwendet wird.
Wichtig
Die ulFlags-SERVICE_NO_RESTART_WARNING ist möglicherweise nicht in der herunterladbaren Headerdatei definiert, über die Sie derzeit verfügen. In diesem Fall können Sie sie Ihrem Code mithilfe des folgenden Werts hinzufügen: #define SERVICE_NO_RESTART_WARNING 0x00000080
MFCMAPI-Referenz
Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.
Datei | Funktion | Kommentar |
---|---|---|
MAPIProfileFunctions.cpp |
HrAddServiceToProfile |
MFCMAPI verwendet die IMsgServiceAdmin::CreateMsgService-Methode , um einem Profil einen Dienst hinzuzufügen. |