MAPI 標準プロパティ
適用対象: Outlook 2013 | Outlook 2016
正規プロパティは、MAPI プロパティを表す仮想プロパティ、または同じプロパティ識別子で定義された複数の MAPI プロパティです。 標準プロパティは、コードの外部でのディスカッションまたはドキュメントでの MAPI プロパティの一貫性のある識別を容易にすることを目的としています。 MAPI 定義のタグ付きプロパティ名とは異なり、標準プロパティ名は MAPI ヘッダー ファイルのグローバル定数として定義されていません。
名前付け規則
正規のプロパティ名は、"プロパティ識別子" を表すプレフィックス "Pid" で始まります。プロパティがタグ付きプロパティ、数値識別子を持つ名前付きプロパティ、または文字列名を持つ名前付きプロパティのいずれであるかに応じて、プレフィックスはそれぞれ "PidTag、"PidLid"、および "PidName" としてさらに修飾されます。 たとえば、 PidTagAccount は、受信者のアカウント名を指定 する タグ付きプロパティ、PR_ACCOUNT (PidTagAccount)、 PR_ACCOUNT_A (PidTagAccount)、 PR_ACCOUNT_W (PidTagAccount) を表します。 PidLidContacts は dispidContacts プロパティを表します。これは、数値識別子を持ち、メッセージに関連付けられている連絡先の名前を指定する名前付きプロパティです。 と PidNamePhishingStamp は、文字列名を持つ名前付きプロパティである "http://schemas.microsoft.com/outlook/phishingstamp" を表し、フィッシングの可能性が高いメッセージをマーキングする文字列を指定します。
1 つの標準プロパティを使用して類似するプロパティを表す
MAPI でのプロパティの識別
MAPI 内のすべてのプロパティは、符号なし 16 ビット値であるプロパティ識別子によって識別されます。 プロパティ識別子とプロパティ型 (もう 1 つの符号なし 16 ビット値) は、 プロパティのプロパティ タグを構成します。
MAPI では、プロパティ タグを使用してプロパティを一意に定義します。 PR_BUSINESS2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber) やPR_OFFICE2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber) などの同じプロパティ タグを持つプロパティは、MAPI では同じプロパティと見なされます。 MAPI が独自のプロパティ用に定義したプロパティ タグの一覧については、MAPI ヘッダー ファイル Mapitags.h を参照してください。
MAPI では、プロパティ識別子が範囲に分割されることに注意してください。 識別子が範囲内にある場合は、その使用と所有権を示します。 タグ付けされたプロパティのプロパティ識別子は、0x0001から0x7FFFの範囲に収まる。 この範囲内には、MAPI で定義されたプロパティのプロパティ識別子が含まれます。これは、0x3FFFに0x0001の範囲内にあります。 名前付きプロパティのプロパティ識別子は、0x8000から0x8FFFまでの範囲にあります。
名前付きプロパティは、プロパティ セットと、符号なし 32 ビット値である長い ID (LID) または文字列のいずれかによって属性付けされます。 プロパティ セットは、同様の目的で名前付きプロパティのグループを識別する GUID です。 プロパティ セットと LID または文字列名は、名前付きプロパティの取得または設定に使用されます。
プロパティの種類
識別子とは別に、プロパティは、そのプロパティで許可される値の種類を指定するデータ型によって属性付けされます。
文字列型のプロパティの場合、基になるプラットフォームでの Unicode のサポートに応じて、プロパティは型 PT_STRING8 (null で終わる 8 ビット文字文字列) またはPT_UNICODE (null で終わる Unicode 文字列) にすることができます。 プロパティは、PT_TSTRING型で定義でき、コンパイル設定によっては、Unicode をサポートするプラットフォームの PT_TSTRING場合は既定の Unicode 文字列、ANSI または DBCS をサポートするプラットフォームの場合は PT_STRING8 文字列に既定で設定されます。 文字列型プロパティは、 PR_ACCOUNT、 PR_ACCOUNT_A、PR_ACCOUNT_Wなどの 3 つの類似した名前で識別されるのが一般的です。 これは、それぞれ型PT_TSTRING、PT_STRING8、PT_UNICODEです。
プロパティの種類と型に関連するマクロの詳細については、MAPI ヘッダー ファイル Mapidefs.h を参照してください。
類似プロパティの識別
現在の MAPI プロパティランドスケープでは、プロパティが異なるプロパティ名で公開されていることは珍しくありません。これらはすべて同じプロパティ識別子で定義されています。 たとえば、タグ付けされたプロパティ (PR_BUSINESS2_TELEPHONE_NUMBER と PR_OFFICE2_TELEPHONE_NUMBER) は Mapitags.h で定義され、プロパティ識別子と型が同じになります。 これら 2 つのプロパティと密接に関連します。
PR_BUSINESS2_TELEPHONE_NUMBER_A
PR_BUSINESS2_TELEPHONE_NUMBER_W
PR_OFFICE2_TELEPHONE_NUMBER_A
PR_OFFICE2_TELEPHONE_NUMBER_W
"_A" サフィックスを持つプロパティはPT_STRING8として入力され、"_W" サフィックスを持つプロパティはPT_UNICODEとして入力されます。
この例の正規プロパティ PidTagBusiness2TelephoneNumber の目的は、1 つの識別子を使用し、すべての MAPI プロパティで一貫した方法 ("Pid" プレフィックスを使用) を使用して、このような密接に関連する MAPI プロパティの参照を容易にすることです。 正規プロパティが表す実際の MAPI プロパティを見つけるには、「 正規プロパティ名を MAPI 名にマッピングする」を参照してください。 MAPI プロパティが関連付けられている正規プロパティを見つけるには、「 MAPI 名を正規プロパティ名にマッピングする」を参照してください。
MAPI 標準プロパティ名のサポート
標準プロパティは実際のプロパティではなく、MAPI ヘッダー ファイルでは定義されていないため、コードでは正規のプロパティ名を使用しないでください。代わりに、コードで MAPI プロパティ名を引き続き使用する必要があります。 たとえば、コードの外部でPR_BUSINESS2_TELEPHONE_NUMBERとPR_OFFICE2_TELEPHONE_NUMBERを PidTagBusiness2TelephoneNumber と参照し、コードでPR_BUSINESS2_TELEPHONE_NUMBERまたはPR_OFFICE2_TELEPHONE_NUMBERを使用できます。
コードで正規のプロパティ名を使用する必要がある場合は、最初に独自のヘッダー ファイルで定義する必要があります。
正規のプロパティ名と Exchange プロトコルの仕様
正規名は、Exchange Serverが他の Microsoft 製品と通信するために使用するプロトコル仕様Microsoft Exchange Serverで参照されます。 Exchange プロトコル仕様で参照されるメッセージ オブジェクトプロパティの詳細については、「 MS-OXPROPS」を参照してください。