MAPI (kanonische Eigenschaften)
Gilt für: Outlook 2013 | Outlook 2016
Eine kanonische Eigenschaft ist eine virtuelle Eigenschaft, die eine MAPI-Eigenschaft darstellt, oder mehrere MAPI-Eigenschaften, die mit demselben Eigenschaftenbezeichner definiert sind. Kanonische Eigenschaften sollen nur die konsistente Identifizierung von MAPI-Eigenschaften in Diskussionen oder Dokumentationen außerhalb von Code ermöglichen. Im Gegensatz zu MAPI-definierten markierten Eigenschaftennamen werden kanonische Eigenschaftennamen nicht als globale Konstanten in MAPI-Headerdateien definiert.
Namenskonventionen
Kanonische Eigenschaftennamen beginnen mit dem Präfix "Pid", das "Eigenschaftsbezeichner" darstellt. Je nachdem, ob die Eigenschaft eine markierte Eigenschaft, eine benannte Eigenschaft mit einem numerischen Bezeichner oder eine benannte Eigenschaft mit einem Zeichenfolgennamen ist, wird das Präfix als "PidTag", "PidLid" bzw. "PidName" weiter qualifiziert. PidTagAccount stellt beispielsweise die markierten Eigenschaften, PR_ACCOUNT (PidTagAccount), PR_ACCOUNT_A (PidTagAccount) und PR_ACCOUNT_W (PidTagAccount) dar, die den Kontonamen eines Empfängers angeben. PidLidContacts stellt die dispidContacts-Eigenschaft dar, eine benannte Eigenschaft, die über einen numerischen Bezeichner verfügt und den Namen der Kontakte angibt, die einer Nachricht zugeordnet sind. und PidNamePhishingStamp stellt "http://schemas.microsoft.com/outlook/phishingstamp", eine benannte Eigenschaft mit einem Zeichenfolgennamen dar und gibt die Zeichenfolgenmarkierungsnachrichten an, die wahrscheinlich Phishing sind.
Darstellen ähnlicher Eigenschaften mithilfe einer kanonischen Eigenschaft
Identifizieren von Eigenschaften in MAPI
Alle Eigenschaften in MAPI werden durch einen Eigenschaftenbezeichner identifiziert, der ein 16-Bit-Wert ohne Vorzeichen ist. Der Eigenschaftenbezeichner und der Eigenschaftentyp (ein weiterer 16-Bit-Wert ohne Vorzeichen) stellen ein Eigenschaftstag für die Eigenschaft dar.
MAPI verwendet ein Eigenschaftentag, um Eigenschaften eindeutig zu definieren. Eigenschaften mit demselben Eigenschaftentag wie PR_BUSINESS2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber) und PR_OFFICE2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber) werden in MAPI als identische Eigenschaften betrachtet. Eine Liste der Eigenschaftentags, die mapi für ihre eigenen Eigenschaften definiert hat, finden Sie in der MAPI-Headerdatei Mapitags.h.
Beachten Sie, dass MAPI Eigenschaftsbezeichner in Bereiche unterteilt. Wenn ein Bezeichner in den Bereich fällt, gibt seine Verwendung und den Besitz an. Die Eigenschaftenbezeichner von markierten Eigenschaften liegen im Bereich von 0x0001 bis 0x7FFF. Innerhalb dieses Bereichs befinden sich die Eigenschaftenbezeichner von MAPI-definierten Eigenschaften, die in den Bereich der 0x0001 zu 0x3FFF fallen. Die Eigenschaftenbezeichner benannter Eigenschaften liegen im Bereich von 0x8000 bis 0x8FFF.
Benannte Eigenschaften werden zusätzlich von einem Eigenschaftensatz und entweder einer langen ID (LID) zugeordnet, bei der es sich um einen 32-Bit-Wert ohne Vorzeichen handelt, oder eine Zeichenfolge. Ein Eigenschaftensatz ist eine GUID, die eine Gruppe benannter Eigenschaften mit einem ähnlichen Zweck identifiziert. Der Eigenschaftensatz und der LID- oder Zeichenfolgenname werden verwendet, um die benannte Eigenschaft abzurufen oder festzulegen.
Eigenschaftentyp
Abgesehen von Bezeichnern wird eine Eigenschaft durch einen Datentyp attributiert, der den Typ der für diese Eigenschaft zulässigen Werte angibt.
Bei Eigenschaften, die vom Zeichenfolgentyp sind, kann die Eigenschaft abhängig von der Unterstützung für Unicode auf der zugrunde liegenden Plattform vom Typ PT_STRING8 (nullterminierte 8-Bit-Zeichenfolge) oder PT_UNICODE (mit NULL endende Unicode-Zeichenfolge) sein. Eine Eigenschaft kann mit dem PT_TSTRING Typ definiert werden, und abhängig von den Kompilierungseinstellungen PT_TSTRING standardmäßig auf eine Unicode-Zeichenfolge für Plattformen, die Unicode unterstützen, oder auf eine PT_STRING8 Zeichenfolge für Plattformen, die ANSI oder DBCS unterstützen. Es ist üblich, dass eine Zeichenfolgentypeigenschaft durch drei ähnliche Namen identifiziert wird, z. B. PR_ACCOUNT, PR_ACCOUNT_A und PR_ACCOUNT_W, die jeweils vom Typ PT_TSTRING, PT_STRING8 und PT_UNICODE sind.
Weitere Informationen zu Eigenschaftentypen und Makros im Zusammenhang mit Typen finden Sie in der MAPI-Headerdatei Mapidefs.h.
Identifizieren ähnlicher Eigenschaften
In der aktuellen MAPI-Eigenschaftenlandschaft ist es nicht ungewöhnlich, dass eine Eigenschaft unter verschiedenen Eigenschaftennamen verfügbar gemacht wurde, die alle mit demselben Eigenschaftenbezeichner definiert sind. Beispielsweise werden die markierten Eigenschaften PR_BUSINESS2_TELEPHONE_NUMBER und PR_OFFICE2_TELEPHONE_NUMBER in Mapitags.h so definiert, dass sie denselben Eigenschaftenbezeichner und -typ aufweisen. Eng mit diesen beiden Eigenschaften verknüpft sind:
PR_BUSINESS2_TELEPHONE_NUMBER_A
PR_BUSINESS2_TELEPHONE_NUMBER_W
PR_OFFICE2_TELEPHONE_NUMBER_A
PR_OFFICE2_TELEPHONE_NUMBER_W
Die Eigenschaften mit dem Suffix "_A" werden als PT_STRING8 und eigenschaften mit dem Suffix "_W" als PT_UNICODE typisiert.
Der Zweck der kanonischen Eigenschaft PidTagBusiness2TelephoneNumber in diesem Beispiel besteht darin, den Verweis auf eng verknüpfte MAPI-Eigenschaften mithilfe eines Bezeichners und auf konsistente Weise (mit dem Präfix "Pid") für alle MAPI-Eigenschaften zu ermöglichen. Informationen dazu, welche echten MAPI-Eigenschaften eine kanonische Eigenschaft darstellt, finden Sie unter Zuordnen kanonischer Eigenschaftennamen zu MAPI-Namen. Informationen zur kanonischen Eigenschaft, der eine MAPI-Eigenschaft zugeordnet ist, finden Sie unter Zuordnen von MAPI-Namen zu kanonischen Eigenschaftennamen.
MAPI-Unterstützung kanonischer Eigenschaftennamen
Da kanonische Eigenschaften keine echten Eigenschaften sind und nicht in MAPI-Headerdateien definiert sind, sollten Sie keine kanonischen Eigenschaftennamen im Code verwenden. Stattdessen sollten Sie weiterhin die genauen MAPI-Eigenschaftsnamen im Code verwenden. Beispielsweise können Sie PR_BUSINESS2_TELEPHONE_NUMBER und PR_OFFICE2_TELEPHONE_NUMBER außerhalb des Codes als PidTagBusiness2TelephoneNumber bezeichnen und im Code entweder PR_BUSINESS2_TELEPHONE_NUMBER oder PR_OFFICE2_TELEPHONE_NUMBER verwenden.
Wenn Sie kanonische Eigenschaftennamen in Ihrem Code verwenden müssen, müssen Sie diese zuerst in Ihren eigenen Headerdateien definieren.
Kanonische Eigenschaftennamen und Exchange-Protokollspezifikationen
Kanonische Namen werden in Microsoft Exchange Server Protokollspezifikationen referenziert, die von Exchange Server für die Kommunikation mit anderen Microsoft-Produkten verwendet werden. Weitere Informationen zu Nachrichtenobjekteigenschaften, auf die von Exchange-Protokollspezifikationen verwiesen wird, finden Sie unter [MS-OXPROPS].