共用方式為


顯示數據表

適用於:Outlook 2013 |Outlook 2016

顯示數據表描述如何顯示特定類型的對話框,其中一個具有一或多個索引標籤式屬性頁,專門用來顯示及編輯一或多個屬性。 與每個顯示數據表相關聯的是 IMAPIProp:IUnknown 介面實作。 IMAPIProp 實作會維護對話框中顯示的屬性數據。

顯示數據表中的數據列代表對話框中顯示的控制項或使用者介面物件。 MAPI 定義許多類型的控件,有些控制件具有靜態值,有些則具有使用者可以變更的動態值。 大部分的控件都可以與使用 IMAPIProp 實作維護的屬性相關聯。 當使用者變更可修改控件的值時,會更新對應的屬性。

服務提供者會實作顯示數據表和 IMAPIProp 介面。 建立顯示數據表類似於使用文本語言撰寫程式。 服務提供者可以透過下列方式建立顯示資料表:

BuildDisplayTable 函式會結合顯示數據表結構中的資訊與對話框資源中的視覺元素,以建置顯示數據表數據列。 函式會傳回 IMAPITable 的指標:IUnknown 介面實作,如果要求,則傳回 ITableData 介面實作的指標。

使用 BuildDisplayTable 建立顯示數據表很簡單,而且會在顯示的視覺元素變更時,讓維護變得更容易。 不過,不想使用 BuildDisplayTable 的服務提供者可以使用 使用 ITableData 方法的自定義程式碼來建立顯示數據表。 例如,針對其屬性頁具有現有範本結構的服務提供者,可能會想要建立自定義程序代碼,而不是使用 BuildDisplayTable

服務提供者有各種方式可以實作其顯示數據表的屬性介面。 包括:

實作的類型取決於要顯示的數據特性和負責的服務提供者。 例如,如果兩個編輯控件中的數據與其中一個控件之間的隱含關聯性變更, IMAPIProp 實作必須適當地變更另一個控件的值。

顯示資料表在其必要資料列集中具有下列屬性:

PR_XPOS (PidTagXCoordinate)
PR_YPOS (PidTagYCoordinate)
PR_DELTAX (PidTagDeltaX)
PR_DELTAY (PidTagDeltaY)
PR_CONTROL_TYPE (PidTagControlType)
PR_CONTROL_FLAGS (PidTagControlFlags)
PR_CONTROL_STRUCTURE (PidTagControlStructure)
PR_CONTROL_ID (PidTagControlId)

PR_XPOSPR_YPOS 指定控件左上角的 X 和 Y 座標。 水平單位是對話框基底寬度單位的 1/4;垂直單位是對話框基底高度單位的 1/8。 Windows 會從目前系統字型的高度和寬度計算目前的對話框基底單位。 座標相對於屬性頁區域的原點。 屬性頁的大小限制為大約 200 乘 180 個對話單元。

PR_DELTAXPR_DELTAY 是控件的寬度和高度。 這些是ULONG值。 寬度單位是對話框基底寬度單位的 1/4;高度單位是對話框基底高度單位的 1/8。 座標相對於控件的原點。

其他四個屬性描述控制件的各種特性。 PR_CONTROL_TYPE 表示控件的類型。 MAPI 會定義十二種類型的控件,每個控件都有一組不同的屬性。 這些屬性會在 flags 屬性中描述, PR_CONTROL_FLAGS。 屬性的範例包括控件是可編輯還是必要。

件結構PR_CONTROL_STRUCTURE包含與特定控件類型相關的資訊。 每種類型的控件都會以不同的結構描述。 例如,編輯控件會以 DTBLEDIT 結構描述。 DTBLEDIT 結構包含成員,這些成員會列出可放置在控件上的字元數目和特定類型的字元,以及可識別其值要顯示在控件中之屬性的屬性標記。 PR_CONTROL_STRUCTURE 會儲存為二進位屬性。

控件標識碼 PR_CONTROL_ID可唯一識別顯示數據表所描述對話框中的控件。 PR_CONTROL_ID是從置於 DTCTL 結構的 lpbNotifcbNotif 成員中的值設定,BuildDisplayTable 會使用這些值來建立顯示數據表。 因為MAPI有時會結合顯示數據表, 所以PR_CONTROL_ID 中的標識碼應該一律是唯一的。 一般而言,提供者會將 GUID 結構指派給 PR_CONTROL_ID ,以確保其唯一性。 產生顯示 數據 表通知時 ,PR_CONTROL_ID 屬性會包含在TABLE_NOTIFICATION結構中。

如需顯示數據表的詳細資訊,請 參閱顯示數據表實作關於顯示數據表通知

另請參閱

MAPI 數據表