MAPI-Zeichensätze

Gilt für: Outlook 2013 | Outlook 2016

MAPI-kompatible Clientanwendungen und Dienstanbieter können ANSI-Zeichen (Einzelbyte) oder Unicode-Zeichen (Doppelbyte) verwenden. OEM-Zeichensätze werden nicht unterstützt. Eine OEM-Zeichenfolge, die an eine MAPI-Methode oder -Funktion übergeben wird, führt dazu, dass diese Methode oder Funktion fehlschlägt. Clientanwendungen, die mit Dateinamen im OEM-Zeichensatz arbeiten, müssen darauf achten, sie in ANSI zu konvertieren, bevor sie an eine MAPI-Methode oder -Funktion übergeben werden.

Die Unterstützung des Unicode-Zeichensatzes ist sowohl für Clients als auch für Dienstanbieter optional. Alle Dienstanbieter sollten ihren Code so schreiben, dass sie kompiliert werden können, unabhängig davon, ob sie Unicode unterstützen oder nicht. Clients werden abhängig von ihrem Supportniveau bedingt kompiliert, Dienstanbieter hingegen nicht. Sie sollten nicht neu kompiliert werden müssen, wenn sich der Zeichensatz ändert. Nichts im Dienstanbietercode sollte bedingt sein.

Wenn Clients oder Dienstanbieter, die Unicode unterstützen, einen Methodenaufruf durchführen, der Zeichenfolgen als Eingabe- oder Ausgabeparameter enthält, legen sie das MAPI_UNICODE-Flag fest. Das Festlegen dieses Flags gibt der Implementierung an, dass alle eingehenden Zeichenfolgen Unicode-Zeichenfolgen sind. Bei der Ausgabe fordert das Festlegen dieses Flags an, dass alle von der Implementierung zurückgegebenen Zeichenfolgen nach Möglichkeit Unicode-Zeichenfolgen sein sollen. Methodenimplementierer, die Unicode unterstützen, erfüllen die Anforderung; -Methodenimplementierer, die keine Unicode-Unterstützung bereitstellen, sind nicht konform. Zeichenfolgeneigenschaften, die nicht im Unicode-Format vorliegen, sind vom Typ PT_STRING8.

MAPI definiert die fMapiUnicode-Konstante in der Headerdatei MAPIDEFS. H, um den Standardzeichensatz darzustellen. Wenn ein Client oder Dienstanbieter Unicode unterstützt, wird fMapiUnicode auf MAPI_UNICODE festgelegt. Clients und Dienstanbieter, die Unicode nicht unterstützen, legen fMapiUnicode auf Null fest.

Dienstanbieter, die Unicode nicht unterstützen, sollten:

  • Weigern Sie sich, Konvertierungen zwischen Zeichensätzen durchzuführen.

  • Übergeben Sie niemals das MAPI_UNICODE-Flag in Methodenaufrufen.

  • Gibt MAPI_E_BAD_CHARWIDTH zurück, wenn das MAPI_UNICODE-Flag übergeben wird.

  • Deklarieren Sie ANSI-Zeichenfolgeneigenschaften explizit.

Dienstanbieter können auch MAPI_E_BAD_CHARWIDTH zurückgeben, wenn sie nur Unicode unterstützen und Clients das MAPI_UNICODE-Flag nicht übergeben.

Die aktuelle Version von MAPI unterstützt Unicode in den folgenden Methoden:

IAddrBook::Address

IAddrBook::CreateOneOff

IAddrBook::Details

IAddrBook::ResolveName

IMAPIProp::GetLastError (nur IAddrBook-Implementierung )

Für diese Methoden können Aufrufer erwarten, dass alle zurückgegebenen Zeichenfolgen Unicode-Zeichenfolgen sind. Zeichenfolgen, die von MAPI-Implementierungen einer anderen Methode zurückgegeben werden, sind ANSI-Zeichenfolgen.