IMsgServiceAdmin2::CreateMsgServiceEx
Gilt für: Outlook 2013 | Outlook 2016
Fügt dem aktuellen Profil einen Nachrichtendienst hinzu und gibt die neu hinzugefügte Dienst-UID zurück.
HRESULT CreateMsgServiceEx(
LPSTR lpszService,
LPSTR lpszDisplayName,
ULONG_PTR ulUIParam,
ULONG ulFlags,
LPMAPIUID lpuidService
);
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.
lpuidService
[out] Der Zeiger auf die UID des hinzugefügten Nachrichtendiensts.
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 IMsgServiceAdmin2::CreateMsgServiceEx-Methode fügt dem aktuellen Profil einen Nachrichtendienst hinzu. CreateMsgServiceEx 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, mit dem 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. CreateMsgServiceEx 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 , MSGSERVICEENTRY, mit dem im ulContext-Parameter festgelegten MSG_SERVICE_CREATE-Wert aufgerufen. Wenn das SERVICE_UI_ALLOWED-Flag im ulFlags-Parameter der CreateMsgServiceEx-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
Wenn das Argument CreateMsgServiceExlpuidService nicht NULL ist, wird die eigenschaft PR_SERVICE_UID (PidTagServiceUid) des Nachrichtendiensts, der dem Profil hinzugefügt wurde, in der GUID zurückgegeben, auf die es verweist.
Übergeben Sie den Wert der eigenschaft PR_SERVICE_UID im lpuidService-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 IMsgServiceAdmin2-Schnittstelle wird von demselben Objekt verfügbar gemacht, das die IMsgServiceAdmin-Schnittstelle implementiert, und ist seit Outlook 2003 mithilfe der Outlook-Implementierung des MAPI-Subsystems verfügbar. Seine IID ist wie folgt definiert: #if !defined(INITGUID) || defined(USES_IID_IMsgServiceAdmin2)
DEFINE_OLEGUID(IID_IMsgServiceAdmin2,0x00020387, 0, 0);
> Die ulFlags-SERVICE_NO_RESTART_WARNING ist möglicherweise nicht in der herunterladbaren Headerdatei definiert, die Sie derzeit haben. In diesem Fall können Sie sie Ihrem Code mit dem folgenden Wert hinzufügen: #define SERVICE_NO_RESTART_WARNING 0x00000080
Siehe auch
IMsgServiceAdmin2 : IMsgServiceAdminMFCMAPI als Codebeispiel