Freigeben über


Zugreifen auf Objekte mithilfe der Sitzung

Gilt für: Outlook 2013 | Outlook 2016

Der Sitzungszeiger, den Sie von Ihrem Aufruf von MAPILogonEx erhalten, kann für den Zugriff auf eine Vielzahl von Objekten verwendet werden. In der folgenden Tabelle sind die Methoden aufgeführt, die für den Zugriff auf verschiedene Objekte verwendet werden:

Object Sitzungsmethode
Abschnitt "Profil"
IMAPISession::OpenProfileSection
Nachrichtenspeicher
IMAPISession::OpenMsgStore
Adressbuch
IMAPISession::OpenAddressBook
Nachrichtendienstverwaltungsobjekt
IMAPISession::AdminServices
Ordner, Nachricht, Adressbuchcontainer, Verteilerliste oder Messagingbenutzer
IMAPISession::OpenEntry

Mit der OpenEntry-Methode und einem gültigen Eintragsbezeichner können Sie ein beliebiges Adressbuch- oder Nachrichtenspeicheranbieterobjekt öffnen. Es gibt weitere OpenEntry-Methoden in MAPI, zusätzlich zur IMAPISession-Methode . OpenEntry wird in den folgenden Objekten implementiert:

Object Methode
Anmeldeobjekt des Adressbuchanbieters
IABLogon::OpenEntry
Adressbuch
IAddrBook::OpenEntry
Adressbuchcontainer
IMAPIContainer::OpenEntry
Sitzung
IMAPISession::OpenEntry
Nachrichtenspeicher
IMsgStore::OpenEntry
Anmeldeobjekt des Nachrichtenspeicheranbieters
IMSLogon::OpenEntry
Ordner
IMAPIContainer::OpenEntry
Supportobjekt
IMAPISupport::OpenEntry

Einige OpenEntry-Methoden erfordern einen Eintragsbezeichner des Zu öffnenden Objekts, ebenso wie IMAPISession::OpenEntry; Andere Methoden lassen die Angabe von NULL zu. Ein NULL-Eintragsbezeichner wird je nach Objekt unterschiedlich interpretiert. Wenn Sie beispielsweise IAddrBook::OpenEntry mit einem NULL-Eintragsbezeichner aufrufen, öffnet MAPI den Stammcontainer des Adressbuchs. Die OpenEntry-Methode des Nachrichtenspeichers verhält sich ähnlich. Der Stammordner des Nachrichtenspeichers wird geöffnet. IMAPIContainer::OpenEntry, das sowohl von Ordnern als auch von Adressbuchcontainern implementiert wird, gibt je nach Implementierung möglicherweise MAPI_E_INVALID_PARAMETER oder den Stammcontainer zurück.

Zusätzlich zur Aufhebung eines NULL-Werts für den Eintragsbezeichner unterscheidet sich die OpenEntry-Methode der Sitzung von anderen OpenEntry-Methoden , da ihre Aufgabe nicht darin besteht, Objekte zu öffnen. Stattdessen wird der Eintragsbezeichner untersucht und der Aufruf an eine andere OpenEntry-Methode weitergeleitet, die vom entsprechenden Dienstanbieter implementiert wird. Wenn Sie beispielsweise IMAPISession::OpenEntry mit dem Eintragsbezeichner einer Nachricht aufrufen, ruft MAPI die IMSLogon::OpenEntry-Methode des für die Nachricht zuständigen Nachrichtenspeichers auf.

Zusätzlich zur Verwendung der Sitzung zum Öffnen von Objekten verwenden Clients sie, um sie zu vergleichen. Die IMAPISession::CompareEntryIDs-Methode vergleicht Objekte, indem sie deren Eintragsbezeichner vergleicht. Wenn die in den Eintragsbezeichnern enthaltenen MAPIUID-Strukturen zum gleichen Dienstanbieter gehören, leitet MAPI den Aufruf an diesen Anbieter weiter. CompareEntryIDs gibt einen Fehlerwert zurück, wenn die beiden Eintragsbezeichner nicht übereinstimmen. Obwohl diese Methode Eintragsbezeichner vergleichen kann, die zu einem beliebigen Objekttyp gehören, eignet sich CompareEntryIDs am besten für Objekte auf höherer Ebene, z. B. Nachrichtenspeicher und Adressbuchcontainer. Um Objekte auf niedrigerer Ebene zu vergleichen, vergleichen Sie direkt die Suchschlüssel der Objekte (PR_SEARCH_KEY (PidTagSearchKey)) oder Datensatzschlüssel (PR_RECORD_KEY (PidTagRecordKey)).

Wie OpenEntry wird CompareEntryIDs von mehreren Objekten implementiert. Wählen Sie aus, welche OpenEntry - und CompareEntryID-Methode entsprechend der Menge der Informationen über das oder die Objekte verwendet werden sollen, die geöffnet oder verglichen werden sollen. Verwenden Sie die folgenden Richtlinien, wenn Sie entscheiden, welche Schnittstellenmethode aufgerufen werden soll:

  • Wenn Sie keine Informationen zu den Zielobjekten haben, rufen Sie IMAPISession::OpenEntry oder IMAPISession::CompareEntryIDs auf. Dieser Ansatz ermöglicht den Zugriff auf jedes Objekt, ist aber der langsamste der drei.

  • Wenn Sie wissen, dass die Zielobjekte Adressbucheinträge und nicht z. B. Ordner sind, rufen Sie die IAddrBook::OpenEntry - oder IAddrBook::CompareEntryIDs-Methode auf . IAddrBook::OpenEntry öffnet den Stammcontainer des Adressbuchs, wenn NULL als Zielobjekt angegeben wird. Dieser Ansatz ermöglicht den Zugriff auf jedes Adressbuchobjekt und ist schneller als die Verwendung von IMAPISession, aber langsamer als die Verwendung von IMAPIContainer.

  • Wenn der verwendete Eintragsbezeichner ein kurzfristiger Eintragsbezeichner ist oder Sie wissen, dass die Zielobjekte zu einem bestimmten Adressbuchcontainer oder -ordner gehören, rufen Sie die IMAPIContainer::OpenEntry-Methode auf. Dieser Ansatz bietet die schnellste Leistung, ermöglicht jedoch nur den Zugriff auf Objekte in einem bestimmten Container oder Ordner.