共用方式為


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,” 是具名屬性,具有字串名稱,且指定字串標記可能為網路釣魚的訊息。

使用一個標準屬性代表類似的屬性

在MAPI中識別屬性

MAPI 中的所有屬性都是以不帶正負號的16位值的屬性標識碼來識別。 屬性標識碼和屬性類型 (另一個不帶正負號的 16 位值) 構成屬性的屬性標記。

MAPI 會使用屬性標籤來唯一定義屬性。 具有相同屬性標籤的屬性,例如 PR_BUSINESS2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber) 和 PR_OFFICE2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber) ,在 MAPI 中被視為相同的屬性。 如需MAPI已針對自己的屬性定義的屬性標籤清單,請參閱MAPI頭檔Mapitags.h。

請注意,MAPI 會將屬性標識符分割成範圍。 標識元落在範圍中的位置表示其使用方式和擁有權。 標記屬性的屬性標識碼落在要0x7FFF的0x0001範圍內。 在此範圍內是MAPI定義屬性的屬性標識碼,其落在要0x3FFF的0x0001範圍內。 具名屬性的屬性標識碼落在從0x8000到0x8FFF的範圍。

具名屬性會另外由屬性集歸屬,而長標識符 (LID) ,這是不帶正負號的 32 位值或字串。 屬性集是 GUID,可識別具有類似用途的具名屬性群組。 屬性集和 LID 或字串名稱可用來取得或設定具名屬性。

屬性類型

除了標識碼之外,屬性是由指定該屬性允許之值類型的數據類型所屬性化。

針對字串類型的屬性,根據基礎平臺中 Unicode 的支援,屬性的類型可以PT_STRING8 (以 Null 結尾的 8 位字元字串) 或PT_UNICODE (以 Null 結尾的 Unicode 字符串) 。 屬性可以使用PT_TSTRING類型來定義,而且根據編譯設定,PT_TSTRING針對支援 Unicode 的平台預設為 Unicode 字元串,或針對支援 ANSI 或 DBCS 的平臺預設為PT_STRING8字元串。 字串類型屬性通常會以三個類似的名稱來識別,例如 PR_ACCOUNTPR_ACCOUNT_APR_ACCOUNT_W,分別屬於類型 PT_TSTRING、PT_STRING8 和 PT_UNICODE。

如需與類型相關的屬性類型和宏的詳細資訊,請參閱MAPI頭檔Mapidefs.h。

識別類似的屬性

在目前的 MAPI 屬性環境中,不常發現屬性已公開在不同的屬性名稱下,而所有屬性名稱都是以相同的屬性標識元定義。 例如,標記的屬性 PR_BUSINESS2_TELEPHONE_NUMBERPR_OFFICE2_TELEPHONE_NUMBER 會在Mapitags.h中定義,以具有相同的屬性標識碼和類型。 與這兩個屬性密切相關的是:

  • 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 的目的是要協助使用一個標識符來參考這類緊密關聯的 MAPI 屬性,並以一致的方式 (在所有 MAPI 屬性之間使用 “Pid” 前置詞) 。 若要尋找標準屬性所代表的實際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 通訊協定規格

標準名稱會在 Microsoft Exchange Server 通訊協定規格中參考,Exchange Server 用來與其他 Microsoft 產品通訊。 如需 Exchange 通訊協定規格所參考之訊息物件屬性的詳細資訊,請參閱 [MS-OXPROPS]

另請參閱

MAPI 屬性標記

MAPI 屬性辨識項概觀

MAPI 屬性類型概觀