MAPI-Zeichenfolgeneigenschaften

Gilt für: Outlook 2013 | Outlook 2016

MAPI stellt drei verschiedene Eigenschaftentypen bereit, um Zeichenfolgeneigenschaften zu beschreiben:

PT_TSTRING

PT_STRING8

PT_UNICODE

Zeichenfolgeneigenschaften werden am häufigsten als PT_TSTRING definiert. Der PT_TSTRING Eigenschaftstyp wird bedingt in einen der anderen Zeichenfolgeneigenschaftentypen kompiliert, je nachdem, ob das UNICODE-Makro definiert wurde. PT_STRING8 beschreibt 8-Bit-Zeichenfolgen mit NULL-Terminen im ANSI-Format. PT_UNICODE beschreibt doppelbyte-endende NULL-Zeichenfolgen.

Entweder ein Client oder ein Dienstanbieter, oder sowohl Client als auch Anbieter können unicode-Zeichenfolgen unterstützen. Dies ist nicht erforderlich. Ein Client, der nur PT_STRING8 Zeichenfolgen unterstützt, kann mit einem Anbieter arbeiten, der Unicode unterstützt und umgekehrt. Um diese Interoperabilität zu ermöglichen, übergeben Clients und Dienstanbieter ein Flag, das MAPI_UNICODE Flag, um anzugeben, dass Unicode in Methoden unterstützt wird, die den Austausch von Zeichenfolgen umfassen.

Angenommen, ein Client unterstützt Unicode und muss den Anzeigenamen eines Ordners abrufen. Alle PT_TSTRING Eigenschaften des Clients werden in den Typ PT_UNICODE kompiliert. Wenn der Client die IMAPIProp::GetProps-Methode des Ordners aufruft , um seine PR_DISPLAY_NAME (PidTagDisplayName)-Eigenschaft abzurufen, übergibt er das MAPI_UNICODE-Flag, um anzufordern, dass die Anzeigenamenzeichenfolge im Unicode-Format zurückgegeben wird.

Clients und Dienstanbieter müssen sich bewusst sein, dass die Angabe eines Zeichensatzes in einem Methodenaufruf nur eine Anforderung ist. Die Unterstützung eines oder beider Zeichensätze ist Sache des Implementierers des -Objekts. Dienstanbietern wird jedoch empfohlen, beide Zeichensätze zu unterstützen, da sie dadurch eine breitere Verteilung erreichen können als Anbieter, die nur einen Satz unterstützen.

Zeichenfolgeneigenschaften können sehr groß sein, ebenso wie binäre Eigenschaften – Eigenschaften, die den Eigenschaftentyp PT_BINARY verwenden. Um die Arbeit mit großen Eigenschaften zu vereinfachen, ermöglicht MAPI Dienstanbietern, diese Eigenschaften festzulegen, um Größenbeschränkungen zu erzwingen. Diese Grenzwerte können je nach folgendem Variieren variieren:

  • Gibt an, ob die Eigenschaften gelesen oder geschrieben werden.

  • Wie der Dienstanbieter die IMAPIProp-Methoden implementiert.

  • Überlegungen zur Laufzeit, z. B. Speichereinschränkungen.

  • Probleme bei der Zeichensatzübersetzung.

Größenbeschränkungen können auch für Zeichenfolgen- und Binäreigenschaften festgelegt werden, wenn sie im Spaltensatz einer Tabelle verwendet werden, da es manchmal unmöglich ist, den gesamten Wert einer großen Eigenschaft sichtbar zu machen. Viele Dienstanbieter kürzen große Zeichenfolgen oder binäre Eigenschaften, die in Tabellen verwendet werden, auf 255 Bytes ab.

Wenn ein Client die GetProps - oder SetProps-Methode eines Objekts aufruft , um mit einer großen Zeichenfolge oder binären Eigenschaft zu arbeiten, und der Aufruf aufgrund der Eigenschaftsgröße fehlschlägt, gibt die Methode den Fehlerwert MAPI_E_NOT_ENOUGH_MEMORY zurück. Wenn GetProps für eine bestimmte Eigenschaft fehlschlägt, kann der Client die Wiederherstellung durch Aufrufen von IMAPIProp::OpenProperty und Anfordern des IStream für den Zugriff durch Angabe von IID_IStream als Schnittstellenbezeichner ausführen. Mit OpenProperty kann der Client eine große Eigenschaft mithilfe einer Schnittstelle wie IStream abrufen, die sich besser für die Arbeit mit großen Eigenschaften eignet.

Siehe auch

Übersicht über die MAPI-Eigenschaft