MAPI-Profile
Gilt für: Outlook 2013 | Outlook 2016
Ein Profil speichert Informationen zu Dienstanbietern und Nachrichtendiensten, die auf einem Computer installiert sind. Für jede Sitzung wählt ein Client zum Zeitpunkt der Anmeldung ein Profil aus, das die zu verwendenden Anbieter und Dienste beschreibt. Ein Client kann aus einer Sammlung von Profilen wählen und, falls gewünscht, eines als Standard festlegen. Das Standardprofil ist das Profil, das automatisch ausgewählt wird, wenn ein Client eine Sitzung startet und kein Profil explizit angegeben hat.
Außerdem finden Sie in diesen Themen eine Erläuterung des Spitznamencaches, der in einem binären Datenstrom gespeichert ist.
Profilabschnitte
Profile sind in Abschnitte unterteilt, auf die Clients und Dienstanbieter zugreifen, um Profileigenschaften für Benutzer anzuzeigen oder Konfigurationsänderungen vorzunehmen. Ein Profilabschnitt ist ein MAPI-Objekt, das die IProfSect-Schnittstelle implementiert, eine Schnittstelle, die von IMAPIProp abgeleitet wird und über keine zusätzlichen Methoden verfügt. Weitere Informationen finden Sie unter IProfSect : IMAPIProp. Der einzige Zweck besteht darin, die Eigenschaften eines Profilabschnitts zu bearbeiten. Um einen IProfSect-Zeiger auf einen bestimmten Profilabschnitt abzurufen, rufen Clients und Dienstanbieter die folgenden Methoden auf.
Eigenschaft | Wert |
---|---|
Clients können Folgendes aufrufen: |
IMAPISession::OpenProfileSection |
Dienstanbieter können Folgendes aufrufen: |
IMAPISupport::OpenProfileSection |
Clients oder Anbieter können Folgendes aufrufen: |
IProviderAdmin::OpenProfileSection |
Profile sind hierarchisch ähnlich wie MAPISVC organisiert. INF-Datei. Oben in der Hierarchie befinden sich Profilabschnitte, die für das Profil relevante Informationen enthalten. Die mittlere Ebene enthält Abschnitte, die Informationen zu einem bestimmten Nachrichtendienst enthalten, und die untere Ebene enthält Abschnitte, die Informationen zu einem der Dienstanbieter in einem Nachrichtendienst enthalten.
Jedes Profil verfügt über mehrere erforderliche Eigenschaften, die in einem oder mehreren Abschnitten des Profils gespeichert sind. Beispielsweise verfügt jedes Profil über die Eigenschaften PR_PROFILE_NAME (PidTagProfileName) und PR_SEARCH_KEY (PidTagSearchKey). Der Suchschlüssel eines Profils wird auf den in MAPIGUID definierten Wert festgelegt. H wie MUID_PROFILE_INSTANCE und ist unter allen Profilen garantiert einzigartig. Obwohl zwei Profile denselben Namen haben können, können sie nicht über denselben Suchschlüssel verfügen. Suchschlüssel sollten als Binärdaten anstelle von Daten eines bestimmten Typs behandelt werden.
Nachrichtenspeicheranbieter müssen die eigenschaft PR_DISPLAY_NAME (PidTagDisplayName) ihres Nachrichtenspeichers in die Profilabschnitte für das Profil und für ihren Nachrichtenspeicheranbieter einschließen und diese Einträge synchronisieren. Wenn ein Nachrichtenspeicher erstellt wird, legt der Anbieter PR_DISPLAY_NAME basierend auf dem wert fest, der in diesen Profilabschnitten gespeichert ist.
Es gibt zwei hauptunterschiede zwischen Profilabschnitten und anderen Objekten, die von IMAPIProp erben:
Profilabschnitte unterstützen keine Transaktionen.
Profilabschnitte unterstützen keine benannten Eigenschaften und geben MAPI_E_NO_SUPPORT aus ihren Implementierungen IMAPIProp::GetIDsFromNames und IMAPIProp::GetNamesFromIDs zurück. Weitere Informationen finden Sie unter IMAPIProp::GetIDsFromNames und IMAPIProp::GetNamesFromIDs.
Da Profilabschnitte transaktionen nicht unterstützen, werden alle Änderungen, die mit Aufrufen von IMAPIProp::CopyProps, CopyTo oder SetProps vorgenommen werden, sofort wirksam. Weitere Informationen finden Sie unter IMAPIProp::CopyProps. Clients und Dienstanbieter können die IMAPIProp::SaveChanges-Methode eines Profilabschnitts aufrufen. Dies ist erfolgreich, wirkt sich jedoch nicht auf die Profilabschnittsdaten aus. Weitere Informationen finden Sie unter IMAPIProp::SaveChanges. Wenn Änderungen sofort auftreten, kann sich dies darauf auswirken, wie Dienstanbieter die Eigenschaftenblätter implementieren, die Clients zum Anzeigen von Profileigenschaften für Benutzer verwenden. Dienstanbieter, die möchten, dass Benutzer Änderungen verschieben oder rückgängig machen können, müssen ihre Eigenschaftenblätter mit Kopien von Profilabschnitten anstelle der echten Abschnitte implementieren. Mithilfe von Kopien können Benutzer Änderungen vornehmen und diese Änderungen später abbrechen, sodass die ursprünglichen Profilabschnitte unverändert bleiben.
Die Reihenfolge, in der Informationen in einem Profil angezeigt werden, wirkt sich auf die Konfiguration von Ressourcen und Zuweisungen in einer Sitzung durch MAPI aus. Die folgenden Zuweisungen sind von der Profilreihenfolge betroffen:
Standardnachrichtenspeicher
Persönliches Adressbuch
Standardsuchpfad für nachrichtenspeicher
Standardadressbuch-Suchpfad
Auftrag des Transportanbieters
MAPI legt den Standardnachrichtenspeicher als ersten Nachrichtenspeicher in dem Profil fest, für das das STATUS_DEFAULT_STORE-Flag in der eigenschaft PR_RESOURCE_FLAGS (PidTagResourceFlags) festgelegt ist, was angibt, dass es sich um den Standardspeicher handelt. Clients können diese Einstellung überschreiben, indem sie IMAPISession::SetDefaultStore aufrufen. Weitere Informationen finden Sie unter IMAPISession::SetDefaultStore.
MAPI erstellt einen Transportauftrag für die Verarbeitung ausgehender und eingehender Nachrichten. Wenn sich mehr als ein Transportanbieter für eine Nachricht eines bestimmten Typs registriert hat, verwendet MAPI diese Reihenfolge, um zu bestimmen, welcher Anbieter die Nachricht verarbeiten soll. MAPI legt die Transportreihenfolge auf die Reihenfolge fest, in der die Transportanbieter dem Profil mit einer Ausnahme hinzugefügt wurden. Die Transporte, die das STATUS_XP_PREFER_LAST-Flag in ihrer PR_RESOURCE_FLAGS -Eigenschaft festgelegt haben, werden in der Reihenfolge an letzter Stelle positioniert. Clients können die Transportreihenfolge festlegen, indem sie IMsgServiceAdmin::MsgServiceTransportOrder aufrufen. Weitere Informationen finden Sie unter IMsgServiceAdmin::MsgServiceTransportOrder.
Diese Richtlinien für die Bestellung von Dienstanbietern und Nachrichtendiensten können manchmal in Konflikt geraten. Wenn es einen Konflikt gibt, sollte Ihr Code den Konflikt lösen. Sie können das Programm Mail Systemsteuerung verwenden, um ein Profil zu überprüfen, das Sie erstellt haben, um festzustellen, ob die Anbieter wie erwartet konfiguriert wurden.