Freigeben über


MAPI-Tabellen

Gilt für: Outlook 2013 | Outlook 2016

Eine MAPI-Tabelle ist ein MAPI-Objekt, das verwendet wird, um eine Auflistung von Eigenschaften anzuzeigen, die zu anderen MAPI-Objekten eines bestimmten Typs gehören. MAPI-Tabellen sind in einem Zeilen- und Spaltenformat strukturiert, wobei jede Zeile ein Objekt und jede Spalte eine Eigenschaft des Objekts darstellt. Eine der Eigenschaften, die normalerweise in jeder Zeile enthalten sind, ist die eigenschaft PR_ENTRYID (PidTagEntryId), ein Bezeichner, der zum Öffnen und Ändern des Objekts verwendet werden kann.

Da Zeilen Eigenschaftswerte enthalten, ähnelt das Abrufen einer Zeile aus einer Tabelle dem Abrufen einer Reihe von Eigenschaften direkt aus dem Objekt, das die Zeile darstellt. Beide Vorgänge führen zum Abrufen eines Eigenschaftswertarrays. Der Standard Unterschied besteht in der Behandlung von langen Zeichenfolgen- und binären Eigenschaften. Für die Aufnahme in eine Tabelle kürzen einige Tabellenimplementierer diese Eigenschaften auf 255 Bytes ab. Wenn sie direkt aus dem Objekt abgerufen werden, ist der vollständige Wert immer verfügbar.

Tabellen werden je nach Typ der Tabelle und den darin enthaltenen Objekten von Adressbuch- und Nachrichtenspeicheranbietern sowie von MAPI implementiert. Ein Nachrichtenspeicheranbieter implementiert Ordner und eine Inhaltstabelle für jeden Ordner, der Informationen zu den Nachrichten im Ordner enthält. Ein Adressbuchanbieter implementiert Adressbuchcontainer und eine Hierarchietabelle, die deren organization. MAPI implementiert mehrere verschiedene Tabellen, einige für die Verwendung durch Clientanwendungen, einige für die Verwendung durch Dienstanbieter und andere für die Verwendung durch beide. Die status Tabelle ist dadurch eindeutig, dass MAPI letztendlich die Tabelle bereitstellt, aber die Zeilen bestehen aus Beiträge von allen Arten von Dienstanbietern zusätzlich zu MAPI.

Die folgende Abbildung zeigt eine der häufigen Verwendungen einer Tabelle in MAPI: zum Anzeigen des Inhalts eines Ordners. Auf der rechten Seite wird eine Anzeige von zwei Nachrichten angezeigt, die in einer typischen Messagingclientanwendung angezeigt werden können. Die Anzeige enthält vier Informationen zu jeder Nachricht: den Absender, den Empfänger, den Betreff und den Nachrichtentext. Jede Information entspricht einer Eigenschaft der Nachricht.

Auf der linken Seite befindet sich eine Ansicht der Inhaltstabelle, die diese beiden Nachrichten enthält. Während die Inhaltstabelle zehn Zeilen enthalten kann, da der Ordner zehn Nachrichten enthält, wobei jede Zeile mehr als drei Spalten enthält, ist diese ansicht auf nur zwei Zeilen und drei Spalten beschränkt.

Die folgende Tabelle zeigt die Eigenschaften, aus denen der Spaltensatz für die Tabellenansicht besteht.

Eigenschaft Beschreibung
PR_SENDER_NAME (PidTagSenderName)
Absendername
PR_ORIGINAL_DELIVERY_TIME (PidTagOriginalDeliveryTime)
Datum und Uhrzeit des Sendens der Nachricht
PR_SUBJECT (PidTagSubject)
Betreffzeile der Nachricht

Beachten Sie, dass die in der Meldung angezeigten Eigenschaften nicht mit den in der Tabelle angezeigten Spalten identisch sind. Der Implementierer der Tabelle, in diesem Fall ein Nachrichtenspeicheranbieter, stellt einen Standardsatz von Spalten in einer Standardreihenfolge bereit. Der Client kann diesen Spaltensatz ändern, zusätzliche Spalten anfordern oder Standardspalten ablehnen und verlangen, dass sie auf eine bestimmte Weise sortiert werden. Der Client kann die Zeilen auch sortieren und nach dem Wert einer oder mehrerer Spalten sortieren.

Verwenden einer Tabelle zum Anzeigen von Ordnerinhalten

Verwenden einer Tabelle zum Anzeigen von Ordnerinhalten

Es gibt zwei Schnittstellen für die Arbeit mit Tabellen:

  • IMAPITable: IUnknown bietet Clients und Dienstanbietern eine schreibgeschützte Ansicht der zugrunde liegenden Daten der Tabelle, sodass sie nur die Präsentation anzeigen und ändern können. Mehrere Benutzer können gleichzeitig mit IMAPITable auf dieselben Daten zugreifen. IMAPITable wird von MAPI und Dienstanbietern implementiert.

  • ITableData: IUnknown gewährt Clients und Dienstanbietern Lese-/Schreibzugriff auf die zugrunde liegenden Daten der Tabelle, sodass sie permanente Änderungen vornehmen können. IMAPITable wird von MAPI implementiert und hauptsächlich von Dienstanbietern verwendet, die durch Aufrufen der CreateTable-Funktion darauf zugreifen. Die ITableData-Implementierung enthält alle Daten für die Tabelle und alle zugehörigen Einschränkungen im Arbeitsspeicher, sodass sie für die Verwendung mit sehr großen Tabellen nicht geeignet ist. Verbundeinschränkungen und komplexe Vorgänge wie die Kategorisierung werden nicht unterstützt.

Siehe auch