Freigeben über


Hinzufügen oder Löschen von Anbietern in einem Nachrichtendienst

Gilt für: Outlook 2013 | Outlook 2016

Verwenden Sie zum Hinzufügen oder Löschen von Dienstanbietern in einem Nachrichtendienst die Schnittstelle IProviderAdmin: IUnknown . Sie können einen IProviderAdmin-Zeiger abrufen, indem Sie IMsgServiceAdmin::AdminProviders aufrufen. Die Anbietertabelle, auf die über IProviderAdmin::GetProviderTable zugegriffen werden kann, enthält Informationen zu den derzeit im Nachrichtendienst installierten Dienstanbietern. Clients und Dienstanbieter können die Anbietertabelle verwenden, um auf den Namen der Anbieter-DLL-Datei zuzugreifen, z. B. oder die MAPIUID, den Anzeigenamen und typ des Anbieters sowie Informationen zum Nachrichtendienst. Weitere Informationen finden Sie unter Anbietertabellen.

So fügen Sie einen Dienstanbieter in einem Nachrichtendienst hinzu oder löschen sie

  1. Rufen Sie die AdminServices-Methode auf, um auf ein Nachrichtendienstverwaltungsobjekt zuzugreifen.

  2. Rufen Sie IMsgServiceAdmin::GetMsgServiceTable auf, um auf die Nachrichtendiensttabelle zuzugreifen.

  3. Erstellen Sie eine Eigenschaftseinschränkung mithilfe einer SPropertyRestriction-Struktur , die PR_DISPLAY_NAME (PidTagDisplayName) oder PR_SERVICE_NAME (PidTagServiceName) mit dem Namen des zu ändernden Nachrichtendiensts übereinstimmt.

  4. Rufen Sie die IMAPITable::FindRow-Methode der Nachrichtendiensttabelle auf, um die Zeile in der Tabelle zu suchen, die den Zielnachrichtendienst darstellt.

  5. Rufen Sie IMsgServiceAdmin::AdminProviders auf, um einen IProviderAdmin-Zeiger abzurufen. Übergeben Sie die spalte PR_SERVICE_UID (PidTagServiceUid) aus der Tabellenzeile des Nachrichtendiensts als lpUID-Parameter .

  6. Rufen Sie IProviderAdmin::GetProviderTable auf, um auf die Anbietertabelle zuzugreifen.

  7. Erstellen Sie eine Eigenschaftseinschränkung mithilfe einer SPropertyRestriction-Struktur, die PR_DISPLAY_NAME (PidTagDisplayName) oder PR_PROVIDER_DISPLAY (PidTagProviderDisplay) mit dem Namen des hinzuzufügenden oder zu löschenden Dienstanbieters übereinstimmt.

  8. Rufen Sie die IMAPITable::FindRow-Methode der Anbietertabelle auf, um die Zeile in der Tabelle zu suchen, die den Zieldienstanbieter darstellt.

  9. Rufen Sie IProviderAdmin::CreateProvider auf, um den Anbieter hinzuzufügen, oder IProviderAdmin::D eleteProvider , um ihn aus dem Nachrichtendienst zu entfernen. Übergeben Sie für CreateProvider die PR_DISPLAY_NAME Eigenschaft des Anbieters als lpszProvider-Parameter . Übergeben Sie für beide Methoden die PR_SERVICE_UID-Eigenschaft des Anbieters als lpUID-Parameter . Nachdem der Dienstanbieter hinzugefügt oder gelöscht wurde, wird die Änderung erst angezeigt, wenn eine neue Sitzung erstellt wurde.

Ein weiteres Verfahren zum Hinzufügen eines Dienstanbieters, insbesondere eines Nachrichtenspeicheranbieters, zu einem Profil besteht darin, einen Eintragsbezeichner für den Anbieter zu erstellen. Da das Erstellen eines Eintragsbezeichners Kenntnisse über sein Format erfordert, kann dieses Verfahren nur verwendet werden, wenn der Dienstanbieter sein Eingabebezeichnerformat öffentlich gemacht hat.

Mit dem neu erstellten Eintragsbezeichner kann ein Client IMAPISession::OpenMsgStore aufrufen. MAPI erstellt automatisch einen Profilabschnitt im Profil für den Dienstanbieter, fügt ihn jedoch keinem Nachrichtendienst hinzu.

Einige Nachrichtendienste lassen diese Art dynamischer Änderungen nicht zu. Ob dies unterstützt wird, liegt beim Nachrichtendienst. Ein weiteres Feature, das unterstützt wird oder nicht, ist die Möglichkeit, direkt auf die privaten Profilabschnitte eines Nachrichtendiensts zuzugreifen. Wenn der von Ihnen verwendete Nachrichtendienst diesen Zugriff zulässt, wird die GUID veröffentlicht, die den privaten Abschnitt in MAPISVC.INF darstellt. Sie können diese GUID in einem Aufruf von IProviderAdmin::OpenProfileSection übergeben, um auf den Profilabschnitt zuzugreifen.