內容數據表
適用於:Outlook 2013 |Outlook 2016
內容數據表包含 MAPI 容器中對象的相關信息。 通訊錄提供者會實作每個容器的內容數據表,而訊息存放區和遠端傳輸提供者會實作其資料夾的內容數據表。 通訊簿容器的內容表格會列出其傳訊使用者和通訊組清單對象的相關信息,而資料夾的內容數據表則會列出其訊息的相關信息。 內容數據表主要供用戶端應用程式使用。
資料夾內容資料表有兩種類型:
標準內容資料表包含標準訊息, 訊息可以傳送並顯示給使用者。
相關聯的內容數據表包含客戶端針對特定目的所建立的隱藏、不可傳輸資訊,例如儲存標準訊息的替代表示法。 將MAPI_ASSOCIATED旗標傳遞至 IMAPIFolder::CreateMessage 呼叫,即可建立相關聯的資訊。
大部分通訊簿容器和許多資料夾的內容數據表不支援分類排序。
您可以呼叫下列方法來存取內容資料表:
IMAPIContainer::GetContentsTable。
- 或-
IMAPIProp::OpenProperty 與 PR_CONTAINER_CONTENTS (PidTagContainerContents) 或 PR_FOLDER_ASSOCIATED_CONTENTS (PidTagFolderAssociatedContents) (資料夾只會) 指定為屬性卷標,IID_IMAPITable做為介面標識符。
訊息存放區和通訊簿提供者必須支援兩種擷取數據表屬性的技術。 提供者無法接受只支援存取這些數據表的一種方式,因為客戶端預期會有選擇。
GetContentsTable 接受 作為輸入數個指定喜好設定的旗標。 設定時,MAPI_ASSOCIATED旗標會擷取相關聯的內容數據表。 由於某些資料夾不支援相關聯的內容,而且客戶端無法事先判斷, 因此 GetContentsTable 有時會在要求相關聯的內容數據表時傳回錯誤MAPI_E_NO_SUPPORT。
MAPI_DEFERRED_ERRORS旗標會向數據表的實作者指出,呼叫期間發生的任何錯誤都不需要在稍後才會回報。
呼叫 IMAPIProp::OpenProperty 牽涉到藉由開啟其對應屬性來存取內容數據表、 PR_CONTAINER_CONTENTS 通訊簿內容數據表和標準資料夾內容數據表,以及 PR_FOLDER_ASSOCIATED_CONTENTS 相關聯的內容數據表。 雖然這兩個屬性都無法透過資料夾或容器的 IMAPIProp::GetProps 方法擷取,但是它們會包含在 IMAPIProp::GetPropList 方法所傳回的屬性卷標數位中。
PR_CONTAINER_CONTENTS 也可以用來在複製作業中包含或排除內容數據表。 如果客戶端在複製作業中為 IMAPIProp::CopyTo 指定 lpExcludeProps 參數中的PR_CONTAINER_CONTENTS,則新的資料夾或容器將不支援原始資料夾或容器的內容數據表。
通訊簿容器和資料夾內容資料表有一份冗長的必要數據行清單,用戶端可預期在從 GetContentsTable 或 OpenProperty 擷取數據表之後,能夠使用這些數據行。 如有必要,提供者可以將 新增至這個必要集合,而用戶端也可以透過 SetColumns 方法要求修改。
每個內容資料表型態的必要資料列如下:
必要數據行 | 目錄數據表的類型 |
---|---|
PR_ADDRTYPE (PidTagAddressType) |
通訊簿容器數據表 |
PR_DISPLAY_NAME (PidTagDisplayName) |
通訊簿容器數據表 |
PR_DISPLAY_CC (PidTagDisplayCc) |
訊息存放區資料夾資料表 |
PR_DISPLAY_TO (PidTagDisplayTo) |
所有資料夾內容資料表 |
PR_DISPLAY_TYPE (PidTagDisplayType) |
通訊簿容器數據表 |
PR_ENTRYID (PidTagEntryId) |
所有內容數據表 |
PR_HASATTACH (PidTagHasAttachments) |
所有資料夾內容資料表 |
PR_INSTANCE_KEY (PidTagInstanceKey) |
所有內容數據表 |
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime) |
訊息存放區資料夾資料表 |
PR_MAPPING_SIGNATURE (PidTagMappingSignature) |
訊息存放區資料夾資料表 |
PR_MESSAGE_CLASS (PidTagMessageClass) |
所有資料夾內容資料表 |
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime) |
遠端傳輸資料夾資料表 |
PR_MESSAGE_FLAGS (PidTagMessageFlags) |
所有資料夾內容資料表 |
PR_MESSAGE_SIZE (PidTagMessageSize) |
所有資料夾內容資料表 |
PR_MSG_STATUS (PidTagMessageStatus) |
所有資料夾內容資料表 |
PR_OBJECT_TYPE (PidTagObjectType) |
所有內容數據表 |
PR_PARENT_ENTRYID (PidTagParentEntryId) |
訊息存放區資料夾資料表 |
PR_RECORD_KEY (PidTagRecordKey) |
通訊簿容器和訊息存放區資料夾資料表 |
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName) |
遠端傳輸資料夾資料表 |
PR_STORE_ENTRYID (PidTagStoreEntryId) |
訊息存放區資料夾資料表 |
PR_STORE_RECORD_KEY (PidTagStoreRecordKey) |
訊息存放區資料夾資料表 |
每個數據列可用的專案標識碼可以是短期或長期的專案標識符,視數據表實作而定。 短期項目標識碼通常用於效能為問題的情況。 任一類型的專案標識碼都可用來存取對應的物件。
內容數據表也有一組數據行,這些數據行是選擇性的,但通常由服務提供者包含在其實作中。 這些選擇性資料列如下:
選擇性數據行 | 目錄數據表的類型 |
---|---|
PR_CLIENT_SUBMIT_TIME (PidTagClientSubmitTime) |
訊息存放區資料夾資料表 |
PR_CONTENT_COUNT (PidTagContentCount) |
標準資料夾內容數據表 |
PR_CONTENT_UNREAD (PidTagContentUnreadCount) |
標準資料夾內容數據表 |
PR_CONVERSATION_INDEX (PidTagConversationIndex) |
訊息存放區資料夾資料表 |
PR_EMAIL_ADDRESS (PidTagEmailAddress) |
通訊簿容器數據表 |
PR_IMPORTANCE (PidTagImportance) |
所有資料夾內容資料表 |
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime) |
所有資料夾內容資料表 |
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject) |
所有資料夾內容資料表 |
PR_PRIORITY (PidTagPriority) |
所有資料夾內容資料表 |
PR_SEARCH_KEY (PidTagSearchKey) |
通訊簿容器數據表 |
PR_SEND_RICH_INFO (PidTagSendRichInfo) |
通訊簿容器數據表 |
PR_SENDER_NAME (PidTagSenderName) |
所有資料夾內容資料表 |
PR_SENSITIVITY (PidTagSensitivity) |
所有資料夾內容資料表 |
PR_SUBJECT (PidTagSubject) |
所有資料夾內容資料表 |
PR_TRANSMITABLE_DISPLAY_NAME (PidTagTransmittableDisplayName) |
通訊簿容器數據表 |
訊息存放區提供者也必須包含 PR_PARENT_DISPLAY (PidTagParentDisplay) 僅適用於搜尋結果資料夾內容數據表。
只有在資料夾中的所有訊息都具有相同的對應簽章,也就是屬性名稱與屬性標識碼的相同對應時,才會將具名屬性新增至資料夾內容數據表的數據行集。 如果資料夾內容資料表支援在資料夾中建立任意訊息,則應該支援將訊息類別特定屬性新增至數據行集。
用戶端可以呼叫其 IMAPIFolder::SaveContentsSort 方法,以儲存資料夾內容數據表的預設排序順序。 如果在呼叫時指定RECURSIVE_SORT旗標,則可以進行排序順序,以套用至資料夾內的所有子資料夾。