Freigeben über


Definieren neuer MAPI-Eigenschaften

Gilt für: Outlook 2013 | Outlook 2016

Trotz der Fülle von Eigenschaften, die von MAPI für die Verwendung durch Clients und Dienstanbieter bereitgestellt werden, ermöglicht MAPI bei Bedarf die Erstellung neuer Eigenschaften. Zu den gültigen Szenarien zum Definieren neuer öffentlicher Eigenschaften gehören ein Client, der Eigenschaften zur Unterstützung einer neuen Nachrichtenklasse erstellt, und ein Dienstanbieter, der neue Eigenschaften erstellt, um eindeutige Messagingsystemfeatures verfügbar zu machen.

Es ist in der Regel für einen Dienstanbieter nicht gültig, neue Eigenschaften für ein vorhandenes MAPI-Objekt oder eine vorhandene Nachrichtenklasse zu definieren. Einer der Hauptvorteile der Verwendung von MAPI besteht darin, dass Standardbezeichner und -formate für eine große Anzahl von Messagingsystemelementen eingerichtet sind, sodass Benutzer Dienstanbieter nahtlos kombinieren und abgleichen können. Dienstanbieter, die nicht standardmäßige Eigenschaften verwenden, funktionieren nicht so gut mit anderen Dienstanbietern.

Clients können Inhaltseigenschaften für neue Nachrichtenklassen wie folgt erstellen:

  • Verwenden von Eigenschaftenbezeichnern innerhalb eines festgelegten Bereichs für nachrichtenklassenspezifische Inhaltseigenschaften.

    • Oder-
  • Verwenden von benannten Eigenschaften.

Die erste Option ist vorzuziehen, da nicht alle Dienstanbieter benannte Eigenschaften unterstützen. MAPI definiert zwei separate Bereiche für Clients, die für neue nachrichtenklassenspezifische Inhaltseigenschaften verwendet werden sollen:

  • 0x6800 zu 0x7BFF für übertragbare Eigenschaften

  • 0x7C00 für nicht übersetzbare Eigenschaften 0x7FFF

Eigenschaftenbezeichner müssen in vordefinierte Bereiche fallen, um Konflikte zwischen Eigenschaften zu verhindern, die von verschiedenen Anbietern oder Benutzern definiert werden. Benutzer von Eigenschaften in diesen Bereichen können jedoch keine Annahmen über das Verhalten der Eigenschaften treffen. Jeder Client, der eine neue Nachrichtenklasse erstellt, hat Zugriff auf diese Bereiche. Eine Eigenschaft mit dem Bezeichner xxxx kann ein Verhalten für eine Nachrichtenklasse und ein anderes Verhalten für eine andere Nachrichtenklasse bedeuten.

Benannte Eigenschaften werden verwendet, um sicherzustellen, dass eine bestimmte Eigenschaft für eine Nachrichtenklasse eindeutig ist. Benannte Eigenschaftenbezeichner beginnen im 0x8000 Bereich. Clients definieren einen oder mehrere Namen und rufen dann die IMAPIProp::GetIDsFromNames-Methode des Nachrichtenspeichers auf, um jedem Namen einen Bezeichner zuzuordnen. Benannte Eigenschaften können nur dann von Clients oder Dienstanbietern verwendet werden, um neue Eigenschaften für jedes Objekt zu definieren, wenn der Besitzer des Objekts benannte Eigenschaften unterstützt. Benutzer dieser Eigenschaften rufen GetIDsFromNames und die zugehörige IMAPIProp-MethodeGetNamesFromIDs auf, um einen Namen und seinen Bezeichner zuzuordnen.

Alle neuen oder vorhandenen Eigenschaften müssen den Satz vordefinierter Eigenschaftentypen verwenden. Neue Eigenschaftstypen können nicht hinzugefügt werden, und vorhandene Typen können nicht geändert oder gelöscht werden. Einfache, kleine Eigenschaften, z. B. Einzelzeichen- oder 16-Bit-Ganzzahleigenschaften, können in jedem geeigneten Typ gespeichert werden. Beispielsweise können ganze Zahlen als ULONG und Zeichenfolgen als PT_STRING8 gespeichert werden.

Verwenden Sie den PT_BINARY-Typ , um ein gezähltes Bytearray anzugeben. Dieser Eigenschaftstyp ist nützlich, um die Datentypen zu erweitern, die in einem -Objekt gespeichert werden können. Bytes werden nacheinander übertragen, und es werden keine Annahmen über die Bedeutung der Daten getroffen. Wenn eine Clientanwendung Daten aus einer solchen Eigenschaft liest, bleiben die Daten gegenüber ihrer Speicherung unverändert. Der Client muss beim Verschieben von Daten über CPUs hinweg alle erforderlichen Bytetauschvorgänge ausführen.

Siehe auch

Übersicht über die MAPI-Eigenschaft