Freigeben über


Übersicht über MAPI-Eigenschaftentypen

Gilt für: Outlook 2013 | Outlook 2016

Eigenschaftstypen sind Konstanten, die von MAPI in MAPIDEFS definiert werden. H-Headerdatei, die den zugrunde liegenden Datentyp eines Eigenschaftswerts angibt. Alle Eigenschaften, unabhängig davon, ob sie von DER MAPI, von Clientanwendungen oder von Dienstanbietern definiert werden, verwenden einen dieser Typen.

Eigenschaftentypen folgen einer ähnlichen Benennungskonvention wie für Eigenschaftstags. Viele Eigenschaftstypen verfügen sowohl über eine Version mit einem als auch über mehrere Werte. Einwertige Eigenschaften enthalten einen Wert ihres Typs, z. B. eine einzelne ganze Zahl oder eine Zeichenfolge. Die Konstante, die verwendet wird, um eine einzelne Werteigenschaft darzustellen, umfasst zwei Teile: das Präfix PT_ und eine Zeichenfolge, die den tatsächlichen Typ beschreibt, z. B. LONG oder STRING8.

Eigenschaften mit mehreren Werten enthalten mehr als einen Wert ihres Typs. Im Gegensatz zu OLE-Variantenarrays hat jeder Wert in einer mehrwertigen Eigenschaft denselben Typ. Die Konstante, die zum Darstellen mehrwertiger Eigenschaften verwendet wird, wird erstellt, indem das flag MV_FLAG mit der entsprechenden Einzelwertkonstante kombiniert wird, die den Basistyp darstellt. Es gibt drei Teile: das Präfix PT_ gefolgt von MV_ gefolgt von einer Zeichenfolge, die den Typ beschreibt. Beispielsweise ist der Typ für eine Eigenschaft, die mehrere ganze Zahlen enthält, PT_MV_LONG und für mehrere Zeichenfolgen PT_MV_STRING8.

Die folgende Abbildung zeigt die Struktur einer SPropValue-Struktur zur Beschreibung einer mehrwertigen ganzzahligen Zahl, einer Eigenschaft vom Typ PT_MV_LONG. Der Value-Member wird erweitert, um die Anzahl der ganzzahligen Werte in der -Eigenschaft und einen Zeiger auf ein Array dieser Werte einzuschließen.

Eigenschaften mit mehreren Werten

Eigenschaften mit mehreren Werten

Obwohl die Unterstützung für eigenschaften mit mehreren Werten optional ist, empfiehlt MAPI, dass Clients und Dienstanbieter beide Eigenschaftentypen unterstützen, da dadurch eine größere Interaktion zwischen MAPI-kompatiblen Komponenten ermöglicht wird.

In der folgenden Abbildung sind alle verschiedenen Eigenschaftentypkonstanten aufgeführt, die zeigen, wo sie in einer SPropValue-Struktur gespeichert sind. Die Größe des Value-Elements hängt vom jeweiligen Typ ab. Beachten Sie, dass nicht alle Einwerttypen über Äquivalente mit mehreren Werten verfügen.

Eigenschaftstypenkonstanten

Eigenschaftentypkonstanten

Clients und Dienstanbieter, die mit einer Eigenschaft arbeiten, müssen zwei Schritte ausführen:

  1. Ermitteln Sie, ob die Eigenschaft verfügbar oder nicht verfügbar ist.

  2. Falls verfügbar, rufen Sie den Wert der Eigenschaft ab.

Manchmal muss ein Kunde oder Dienstanbieter nur überprüfen, ob eine Eigenschaft vorhanden ist; In anderen Situationen ist es erforderlich, nach einem bestimmten Wert zu suchen. Transportanbieter verfügen beispielsweise über drei verschiedene Vorgehensweisen für die Verarbeitung der eigenschaft PR_SEND_RICH_INFO (PidTagSendRichInfo), einem booleschen Wert, der angibt, ob eine Nachricht mit formatiertem Text übertragen werden soll. Wenn PR_SEND_RICH_INFO auf TRUE festgelegt ist, überträgt der Transportanbieter den formatierten Text. Wenn er auf FALSE festgelegt ist, wird der formatierte Text vor der Übertragung verworfen. Wenn PR_SEND_RICH_INFO nicht verfügbar ist, befolgt der Transportanbieter seinen Standardvorgang, unabhängig davon, was für den jeweiligen Anbieter gilt.

MAPI definiert einen speziellen Eigenschaftentyp PT_UNSPECIFIED, den ein Client oder Dienstanbieter verwenden kann, um eine Eigenschaft abzurufen, wenn der Eigenschaftentyp unbekannt ist. Um eine Eigenschaft ohne vorherige Kenntnis ihres Typs abzurufen, ruft ein Client oder Dienstanbieter die IMAPIProp::GetProps-Methode eines Objekts auf und übergibt ein Eigenschaftstag, das aus dem Bezeichner der Eigenschaft und dem PT_UNSPECIFIED Eigenschaftentyp besteht. GetProps gibt eine SPropValue-Struktur für die Eigenschaft zurück, wobei PT_UNSPECIFIED durch den entsprechenden Typ ersetzt wird. Dienstanbieter, die GetProps implementieren, sind erforderlich, um PT_UNSPECIFIED zu unterstützen.

Einige MAPI-Objekte unterstützen Eigenschaften, die selbst Objekte sind. Objekteigenschaften weisen den Typ PT_OBJECT auf. Anstatt IMAPIProp::GetProps für den Zugriff auf diese Eigenschaften zu verwenden, verwenden Clients und Dienstanbieter in der Regel entweder die IMAPIProp::OpenProperty-Methode , die die entsprechende Schnittstelle für den Zugriff angibt, oder eine Methode für das Objekt, das die Eigenschaft unterstützt.

Da der Zugriff auf den Wert einer Objekteigenschaft die Verwendung einer der Schnittstellen für das Objekt erfordert, ist GetProps ungeeignet. Mit GetProps greift der Aufrufer über eine SPropValue-Struktur auf den Wert einer Eigenschaft zu. Mit IMAPIProp::OpenProperty ruft der Aufrufer einen Zeiger auf eine Schnittstelle ab, die auf das Objekt zugreifen kann. OpenProperty kann immer verwendet werden, um eine Objekteigenschaft abzurufen. Die andere Option, das Aufrufen einer Methode für das Objekt, ist nicht für jede Objekteigenschaft verfügbar.

Beispielsweise unterstützt jeder Ordner zwei Tabellen, eine Hierarchietabelle und eine Inhaltstabelle. Diese Tabellen sind Eigenschaften des Ordners; ihre Eigenschaftstags sind PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) und PR_CONTAINER_CONTENTS (PidTagContainerContents). Tabellen sind Objekte, die die IMAPITable-Schnittstelle für den Zugriff erfordern. Ein Client kann die IMAPIContainer::GetHierarchyTable-Methode des Ordners aufrufen, um auf die Hierarchietabelle zuzugreifen, die IMAPIContainer::GetContentsTable-Methode des Ordners für den Zugriff auf die Inhaltstabelle oder die IMAPIProp::OpenProperty-Methode des Ordners, um auf beide Tabellen zuzugreifen. Um OpenProperty aufzurufen, übergibt ein Client das Eigenschaftstag für die Eigenschaft als ersten Parameter und einen Schnittstellenbezeichner für die Schnittstelle, die für den Zugriff als zweiter Parameter verwendet werden soll. Diese Parameter sind PR_CONTAINER_HIERARCHY oder PR_CONTAINER_CONTENTS und IID_IMAPITable.

Eine vollständige Liste der Eigenschaftentypen mit einem und mehreren Werten finden Sie unter Eigenschaftentypen.

Siehe auch