Inhaltstabellen
Gilt für: Outlook 2013 | Outlook 2016
Eine Inhaltstabelle enthält Informationen zu Objekten in einem MAPI-Container. Adressbuchanbieter implementieren Inhaltstabellen für jeden ihrer Container, und Nachrichtenspeicher- und Remotetransportanbieter implementieren Inhaltstabellen für ihre Ordner. Die Inhaltstabelle eines Adressbuchcontainers enthält Informationen zu den Messagingbenutzer- und Verteilerlistenobjekten, während die Inhaltstabelle eines Ordners Informationen zu den zugehörigen Nachrichten enthält. Inhaltstabellen werden hauptsächlich von Clientanwendungen verwendet.
Es gibt zwei Arten von Ordnerinhaltstabellen:
Standardinhaltstabellen enthalten Standardnachrichten – Nachrichten, die übertragen und für einen Benutzer sichtbar gemacht werden können.
Zugeordnete Inhaltstabellen enthalten ausgeblendete, nicht übertragbare Informationen, die von einem Client für einen bestimmten Zweck erstellt wurden, z. B. zum Speichern einer alternativen Darstellung einer Standardnachricht. Zugeordnete Informationen werden erstellt, indem das MAPI_ASSOCIATED-Flag an den IMAPIFolder::CreateMessage-Aufruf übergeben wird.
Die Inhaltstabellen der meisten Adressbuchcontainer und vieler Ordner unterstützen keine kategorisierte Sortierung.
Auf eine Inhaltstabelle kann zugegriffen werden, indem Folgendes aufgerufen wird:
IMAPIContainer::GetContentsTable.
- Oder-
IMAPIProp::OpenProperty mit PR_CONTAINER_CONTENTS (PidTagContainerContents) oder PR_FOLDER_ASSOCIATED_CONTENTS (PidTagFolderAssociatedContents) (nur Ordnern), die als Eigenschaftentag und IID_IMAPITable als Schnittstellenbezeichner angegeben sind.
Nachrichtenspeicher- und Adressbuchanbieter müssen beide Techniken zum Abrufen von Tabelleneigenschaften unterstützen. Es ist inakzeptabel, dass Anbieter nur eine Möglichkeit für den Zugriff auf diese Tabellen unterstützen, da Clients erwarten, dass sie die Wahl haben.
GetContentsTable akzeptiert als Eingabe mehrere Flags, die Einstellungen angeben. Wenn festgelegt, ruft das MAPI_ASSOCIATED-Flag eine zugeordnete Inhaltstabelle ab. Da einige Ordner zugeordnete Inhalte nicht unterstützen und clients dies nicht im Voraus bestimmen können, gibt GetContentsTable manchmal den Fehler MAPI_E_NO_SUPPORT zurück, wenn eine zugeordnete Inhaltstabelle angefordert wird.
Das flag MAPI_DEFERRED_ERRORS gibt dem Implementierer der Tabelle an, dass fehler, die während des Aufrufs aufgetreten sind, erst zu einem späteren Zeitpunkt gemeldet werden müssen.
Der Aufruf von IMAPIProp::OpenProperty umfasst den Zugriff auf eine Inhaltstabelle durch Öffnen der entsprechenden Eigenschaft, PR_CONTAINER_CONTENTS für Adressbuchinhaltstabellen und Standardordnerinhaltstabellen und PR_FOLDER_ASSOCIATED_CONTENTS für verknüpfte Inhaltstabellen. Obwohl keine oder diese Eigenschaften über die IMAPIProp::GetProps-Methode eines Ordners oder Containers abgerufen werden können, sind sie im Eigenschaftentagarray enthalten, das von der IMAPIPropProp::GetPropList-Methode zurückgegeben wird.
PR_CONTAINER_CONTENTS können auch verwendet werden, um eine Inhaltstabelle in einen Kopiervorgang ein- oder auszuschließen. Wenn ein Client PR_CONTAINER_CONTENTS im lpExcludeProps-Parameter für IMAPIProp::CopyTo in einem Kopiervorgang angibt, unterstützt der neue Ordner oder Container die Inhaltstabelle des ursprünglichen Ordners oder Containers nicht.
Adressbuchcontainer- und Ordnerinhaltstabellen verfügen über eine lange Liste der erforderlichen Spalten – Spalten, von denen Clients erwarten können, dass sie verfügbar sind, nachdem sie die Tabelle aus GetContentsTable oder OpenProperty abgerufen haben. Anbieter können diesem erforderlichen Satz bei Bedarf hinzufügen, und Clients können über die SetColumns-Methode auch Änderungen anfordern.
Die erforderlichen Spalten für die einzelnen Inhaltstabellentypen sind:
Erforderliche Spalte | Inhaltsverzeichnistyp |
---|---|
PR_ADDRTYPE (PidTagAddressType) |
Adressbuchcontainertabellen |
PR_DISPLAY_NAME (PidTagDisplayName) |
Adressbuchcontainertabellen |
PR_DISPLAY_CC (PidTagDisplayCc) |
Nachrichtenspeicherordnertabellen |
PR_DISPLAY_TO (PidTagDisplayTo) |
Alle Ordnerinhaltstabellen |
PR_DISPLAY_TYPE (PidTagDisplayType) |
Adressbuchcontainertabellen |
PR_ENTRYID (PidTagEntryId) |
Alle Inhaltstabellen |
PR_HASATTACH (PidTagHasAttachments) |
Alle Ordnerinhaltstabellen |
PR_INSTANCE_KEY (PidTagInstanceKey) |
Alle Inhaltstabellen |
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime) |
Nachrichtenspeicherordnertabellen |
PR_MAPPING_SIGNATURE (PidTagMappingSignature) |
Nachrichtenspeicherordnertabellen |
PR_MESSAGE_CLASS (PidTagMessageClass) |
Alle Ordnerinhaltstabellen |
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime) |
Tabellen für Remotetransportordner |
PR_MESSAGE_FLAGS (PidTagMessageFlags) |
Alle Ordnerinhaltstabellen |
PR_MESSAGE_SIZE (PidTagMessageSize) |
Alle Ordnerinhaltstabellen |
PR_MSG_STATUS (PidTagMessageStatus) |
Alle Ordnerinhaltstabellen |
PR_OBJECT_TYPE (PidTagObjectType) |
Alle Inhaltstabellen |
PR_PARENT_ENTRYID (PidTagParentEntryId) |
Nachrichtenspeicherordnertabellen |
PR_RECORD_KEY (PidTagRecordKey) |
Adressbuchcontainer und Nachrichtenspeicherordnertabellen |
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName) |
Tabellen für Remotetransportordner |
PR_STORE_ENTRYID (PidTagStoreEntryId) |
Nachrichtenspeicherordnertabellen |
PR_STORE_RECORD_KEY (PidTagStoreRecordKey) |
Nachrichtenspeicherordnertabellen |
Der für jede Zeile verfügbare Eintragsbezeichner kann je nach Tabellenimplementierung entweder ein kurz- oder langfristiger Eintragsbezeichner sein. Bezeichner für kurzfristige Eingaben werden in der Regel in Situationen verwendet, in denen die Leistung ein Problem darstellt. Jeder Typ von Eintragsbezeichner kann für den Zugriff auf das entsprechende Objekt verwendet werden.
Inhaltstabellen enthalten auch eine Reihe von Spalten, die optional sind, aber häufig von Dienstanbietern in ihren Implementierungen enthalten sind. Diese optionalen Spalten sind:
Optionale Spalte | Inhaltsverzeichnistyp |
---|---|
PR_CLIENT_SUBMIT_TIME (PidTagClientSubmitTime) |
Nachrichtenspeicherordnertabellen |
PR_CONTENT_COUNT (PidTagContentCount) |
Standardordnerinhaltstabellen |
PR_CONTENT_UNREAD (PidTagContentUnreadCount) |
Standardordnerinhaltstabellen |
PR_CONVERSATION_INDEX (PidTagConversationIndex) |
Nachrichtenspeicherordnertabellen |
PR_EMAIL_ADDRESS (PidTagEmailAddress) |
Adressbuchcontainertabellen |
PR_IMPORTANCE (PidTagImportance) |
Alle Ordnerinhaltstabellen |
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime) |
Alle Ordnerinhaltstabellen |
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject) |
Alle Ordnerinhaltstabellen |
PR_PRIORITY (PidTagPriority) |
Alle Ordnerinhaltstabellen |
PR_SEARCH_KEY (PidTagSearchKey) |
Adressbuchcontainertabellen |
PR_SEND_RICH_INFO (PidTagSendRichInfo) |
Adressbuchcontainertabellen |
PR_SENDER_NAME (PidTagSenderName) |
Alle Ordnerinhaltstabellen |
PR_SENSITIVITY (PidTagSensitivity) |
Alle Ordnerinhaltstabellen |
PR_SUBJECT (PidTagSubject) |
Alle Ordnerinhaltstabellen |
PR_TRANSMITABLE_DISPLAY_NAME (PidTagTransmittableDisplayName) |
Adressbuchcontainertabellen |
Nachrichtenspeicheranbieter müssen auch PR_PARENT_DISPLAY (PidTagParentDisplay) nur für Inhaltstabellen von Suchergebnisordnern enthalten.
Benannte Eigenschaften können dem Spaltensatz einer Ordnerinhaltstabelle nur hinzugefügt werden, wenn alle Nachrichten im Ordner die gleiche Zuordnungssignatur aufweisen, d. h. die gleiche Zuordnung von Eigenschaftsnamen zu Eigenschaftsbezeichnern. Ordnerinhaltstabellen sollten das Hinzufügen von nachrichtenklassenspezifischen Eigenschaften zum Spaltensatz unterstützen, wenn sie die Erstellung beliebiger Nachrichten im Ordner unterstützen.
Clients können die Standardsortierreihenfolge für eine Ordnerinhaltstabelle speichern, indem sie ihre IMAPIFolder::SaveContentsSort-Methode aufrufen. Wenn das RECURSIVE_SORT-Flag für den Aufruf angegeben ist, kann die Sortierreihenfolge so festgelegt werden, dass sie auf alle Unterordner innerhalb des Ordners angewendet wird.