IMAPIContainer::GetContentsTable
適用於:Outlook 2013 |Outlook 2016
傳回容器內容數據表的指標。
HRESULT GetContentsTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
參數
ulFlags
[in]控制如何傳回內容數據表的旗標位掩碼。 您可以設定下列旗標:
MAPI_ASSOCIATED
應該傳回容器的相關聯內容數據表,而不是標準內容數據表。 此旗標僅與資料夾搭配使用。 相關聯的內容數據表中所包含的訊息是使用呼叫 IMAPIFolder::CreateMessage 方法時設定的MAPI_ASSOCIATED旗標所建立。 用戶端通常會使用相關聯的內容數據表來擷取表單、檢視和其他隱藏的訊息。
ACLTABLE_FREEBUSY
在 PR_MEMBER_RIGHTS 中啟用frightsFreeBusySimple和frightsFreeBusyDetailed權 限的存取權。
MAPI_DEFERRED_ERRORS
GetContentsTable 可以成功傳回,可能在數據表可供呼叫者使用之前。 如果數據表無法使用,進行後續的數據表呼叫可能會引發錯誤。
MAPI_UNICODE
要求以 Unicode 格式傳回包含字串資料的數據行。 如果未設定MAPI_UNICODE旗標,則應該以 ANSI 格式傳回字串。
SHOW_SOFT_DELETES
顯示目前標示為虛刪除的專案,也就是它們處於已刪除的專案保留時間階段。
lppTable
[out]目錄指標的指標。
傳回值
S_OK
已成功擷取內容數據表。
MAPI_E_BAD_CHARWIDTH
已設定MAPI_UNICODE旗標,且實作不支援 Unicode,或未設定MAPI_UNICODE,且實作僅支援 Unicode。
MAPI_E_NO_SUPPORT
容器沒有內容,而且無法提供內容數據表。
註解
IMAPIContainer::GetContentsTable 方法會傳回容器內容數據表的指標。 內容數據表包含容器中物件的摘要資訊。
內容數據表有冗長的數據行集。 如需內容數據表中必要和選擇性數據行的完整清單,請參閱 內容數據表。
某些容器可能沒有內容。 這些容器會從其 GetContentsTable 實作傳回MAPI_E_NO_SUPPORT。
實作者注意事項
如果您支援容器的內容數據表,也必須執行下列動作:
支援呼叫容器的 IMAPIProp::OpenProperty 方法,以開 啟 PR_CONTAINER_CONTENTS (PidTagContainerContents) 属性。
傳回 PR_CONTAINER_CONTENTS 以回應對容器的呼叫
遠端傳輸提供者的這個方法實作必須傳回 IMAPITable 的指標:傳遞至 GetContentsTable 方法之 ppTable 參數中的 IUnknown 介面。 如果您的傳輸提供者有現有的內容數據表,就足以傳回其指標。 如果沒有,這個方法必須建立新的 IMAPITable :IUnknown 物件,如果有任何訊息標頭可供) ,請將訊息標頭填入 (,然後傳回新數據表的指標。 ITableData::HrGetView 方法適用於產生傳回值,並將數據表指標儲存在ppTable 參數中。 內容資料表至少必須支援下列屬性資料列:
PR_ENTRYID (PidTagEntryID)
PR_SENDER_NAME (PidTagSenderName)
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
PR_DISPLAY_TO (PidTagDisplayTo)
PR_SUBJECT (PidTagSubject)
PR_MESSAGE_CLASS (PidTagMessageClass)
PR_MESSAGE_FLAGS (PidTagMessageFlags)
PR_MESSAGE_SIZE (PidTagMessageSize)
PR_PRIORITY (PidTagPriority)
PR_IMPORTANCE (PidTagImportance)
PR_SENSITIVITY (PidTagSensitivity)
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
PR_MSG_STATUS (PidTagMessageStatus)
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
PR_HASATTACH (PidTagHasAttachments)
PR_OBJECT_TYPE (PidTagObjectType)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
呼叫者注意事項
您可以截斷字串和二進位內容資料表數據行。 提供者通常會傳回 255 個字元。 因為您無法事先知道數據表是否包含截斷的數據行,所以假設如果數據行的長度是 255 或 510 個字節,數據行就會被截斷。 如有必要,您一律可以直接從 物件擷取已截斷數據行的完整值,方法是使用其專案標識符來開啟它,然後呼叫 IMAPIProp::GetProps 方法。
視提供者的實作而定,限制和排序作業可以套用至所有字串或該字串串的截斷版本。
MFCMAPI 參考
如需 MFCMAPI 範例程式代碼,請參閱下表。
檔案 | Function | Comment |
---|---|---|
ContentsTableDialog.cpp |
CContentsTableDlg::CContentsTableDlg |
CContentsTableDlg 類別會使用 GetContentsTable 來取得目錄數據表中的專案。 |