共用方式為


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。

實作者注意事項

如果您支援容器的內容數據表,也必須執行下列動作:

遠端傳輸提供者的這個方法實作必須傳回 IMAPITable 的指標:傳遞GetContentsTable 方法之 ppTable 參數中的 IUnknown 介面。 如果您的傳輸提供者有現有的內容數據表,就足以傳回其指標。 如果沒有,這個方法必須建立新的 IMAPITable :IUnknown 物件,如果有任何訊息標頭可供) ,請將訊息標頭填入 (,然後傳回新數據表的指標。 ITableData::HrGetView 方法適用於產生傳回值,並將數據表指標儲存在ppTable 參數中。 內容資料表至少必須支援下列屬性資料列:

呼叫者注意事項

您可以截斷字串和二進位內容資料表數據行。 提供者通常會傳回 255 個字元。 因為您無法事先知道數據表是否包含截斷的數據行,所以假設如果數據行的長度是 255 或 510 個字節,數據行就會被截斷。 如有必要,您一律可以直接從 物件擷取已截斷數據行的完整值,方法是使用其專案標識符來開啟它,然後呼叫 IMAPIProp::GetProps 方法。

視提供者的實作而定,限制和排序作業可以套用至所有字串或該字串串的截斷版本。

MFCMAPI 參考

如需 MFCMAPI 範例程式代碼,請參閱下表。

檔案 Function Comment
ContentsTableDialog.cpp
CContentsTableDlg::CContentsTableDlg
CContentsTableDlg 類別會使用 GetContentsTable 來取得目錄數據表中的專案。

另請參閱

IMAPIProp::GetPropList

IMAPIProp::GetProps

IMAPIProp::OpenProperty

IMAPITable:IUnknown

PidTagContainerContents Canonical 屬性

IMAPIContainer:IMAPIProp

MFCMAPI 作為程式碼範例