テーブルを表示します。Display Tables

適用されます: OutlookApplies to: Outlook

表示テーブルが特定の種類のダイアログ ボックスを表示する方法について説明などを表示して、おそらく 1 つまたは複数のプロパティを編集するのには専用の 1 つまたは複数のタブ付きプロパティ ページを持つ 1 つ。A display table describes how to show a specific type of dialog box — one having one or more tabbed property pages dedicated to displaying and possibly editing one or more properties. 関連付けられているテーブルは、すべてのディスプレイで、 IMAPIProp: IUnknownインターフェイスの実装です。Associated with every display table is an IMAPIProp : IUnknown interface implementation. IMAPIPropの実装では、ダイアログ ボックスに表示されるプロパティ データを保持します。The IMAPIProp implementation maintains the property data that is presented in the dialog box.

ディスプレイ テーブル内の行は、コントロール、またはユーザー インターフェイス オブジェクト、ダイアログ ボックスに表示されているを表します。The rows in a display table represent the controls, or user interface objects, that are displayed in the dialog box. MAPI では、静的な値を使用して一部使用し、ユーザーが変更される動的な値を使用して一部を使用する、コントロールの多くの種類を定義します。MAPI defines many types of controls, some with static values and some with dynamic values that a user can change. ほとんどのコントロールは、 IMAPIPropの実装と管理プロパティに関連付けることができます。Most controls can be associated with properties maintained with the IMAPIProp implementation. ユーザーは、変更可能なコントロールの値を変更するときは、対応するプロパティが更新されます。When a user changes the value of a modifiable control, the corresponding property is updated.

サービス プロバイダーは、テーブルの表示とIMAPIPropインターフェイスを実装します。Service providers implement display tables and the IMAPIProp interface. 表示テーブルを作成することは、スクリプト言語でプログラムを記述に似ています。Creating a display table is similar to writing a program with a scripting language. サービス プロバイダーは、表示のテーブルを作成できます。Service providers can create a display table by:

  • BuildDisplayTable関数を呼び出しています。Calling the BuildDisplayTable function.

    • または、Or -
  • 直接オブジェクトを使用して、テーブル データの表示テーブルを設定するカスタム コードを含む-をサポートするオブジェクトのITableData: IUnknownインタ フェースです。Including custom code that populates the display table directly using a table data object — an object that supports the ITableData : IUnknown interface.

BuildDisplayTable関数は、テーブルの行の表示を作成するダイアログ ボックスのリソースからの視覚的要素を持つディスプレイ テーブルの構造体から情報を組み合わせたものです。The BuildDisplayTable function combines information from display table structures with visual elements from a dialog box resource to build display table rows. 関数へのポインターを返します。、 IMAPITable: IUnknownインターフェイスの実装、および、要求された場合、 ITableDataインターフェイスの実装へのポインター。The function returns a pointer to an IMAPITable : IUnknown interface implementation, and, if requested, a pointer to an ITableData interface implementation.

BuildDisplayTableを使用して、表示された表を作成するのには単純で、ディスプレイの視覚的な要素を変更するときは、保守を容易です。Using BuildDisplayTable to create a display table is straightforward and makes maintenance easier when visual elements of the display change. ただし、 BuildDisplayTableを使用しないようにするサービス プロバイダーは、 ITableDataのメソッドを使用するカスタム コードで表示テーブルを作成できます。However, service providers that prefer not to use BuildDisplayTable can create a display table with custom code that uses the methods of ITableData. などのサービス プロバイダーのプロパティ ページの既存のテンプレートの構造であることをすることもBuildDisplayTableを使用するのではなく、カスタム コードを作成します。For example, service providers that have an existing template structure for their property pages might want to create custom code rather than use BuildDisplayTable.

さまざまなサービス ・ プロバイダーは、表示された表のプロパティ インターフェイスを実装する方法があります。There are a variety of ways service providers can implement the property interface for their display table. これらは次のとおりです。These include:

  • 標準を提供するIMAPIProp: IUnknown実装します。Supplying a standard IMAPIProp : IUnknown implementation.

  • 標準的な呼び出しを行う前に特別な処理を含むラップされたIMAPIProp実装を提供します。Supplying a wrapped IMAPIProp implementation that includes special processing before making the standard calls.

  • 提供する、 IPropData: IMAPIPropの実装です。Supplying an IPropData : IMAPIProp implementation.

実装の種類は、表示するデータの特性と、担当のサービス プロバイダーによって異なります。The type of implementation depends on the characteristics of the data to be displayed and the responsible service provider. などの 2 つのエディット コントロール内のデータの間で暗黙のリレーションシップがあるし、コントロールのいずれかが変更された、 IMAPIProp実装する必要があります、他のコントロールの値を適切に変更します。For example, if there is an implicit relationship between the data in two edit controls and one of the controls changes, the IMAPIProp implementation must change the value of the other control appropriately.

表示テーブルでは、必要な列セットは次のプロパティがあります。Display tables have the following properties in their required column set:

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

PR_XPOSPR_YPOSは、コントロールの左上隅の X と Y 座標を指定します。PR_XPOS and PR_YPOS specify the X and Y coordinates of the upper left corner of the control. 水平方向の単位は、1/4、ダイアログ ベース単位の幅です。垂直方向の単位は、ダイアログ ベースの高さの単位の 1/8 です。The horizontal units are 1/4 of the dialog base width unit; the vertical units are 1/8 of the dialog base height unit. Windows では、現在のダイアログの基本単位から現在のシステム フォントの幅と高さを計算します。Windows computes the current dialog base units from the height and width of the current system font. 座標は、プロパティ ページ領域の原点を基準にしています。The coordinates are relative to the origin of the property page area. プロパティ ページのサイズは、ダイアログ単位を約 180 から 200 に制限されます。The size of property pages is limited to approximately 200 by 180 dialog units.

PR_DELTAXPR_DELTAYは、幅と、コントロールの高さです。PR_DELTAX and PR_DELTAY are the width and height of the control. これらは、ULONG 値です。These are ULONG values. 幅の単位は、1/4、ダイアログ ベース単位の幅です。高さの単位は、ダイアログ ベースの高さの単位の 1/8 です。The width units are 1/4 of the dialog base width unit; the height units are 1/8 of the dialog base height unit. 座標は、コントロールの原点に対する相対座標です。The coordinates are relative to the origin of the control.

他の 4 つのプロパティは、コントロールのさまざまな特性について説明します。The other four properties describe various characteristics of the control. PR_CONTROL_TYPEは、コントロールの種類を示します。PR_CONTROL_TYPE indicates the type of control. MAPI では、12 種類のそれぞれ異なる一連の属性を持つコントロールを定義します。MAPI defines twelve types of controls, each with a different set of attributes. フラグは、 PR_CONTROL_FLAGSでは、これらの属性が記載されています。These attributes are described in the flags property, PR_CONTROL_FLAGS. 属性の例には、コントロールは、編集可能または必要であるかどうかが含まれます。Examples of attributes include whether or not a control is editable or required.

制御構造体、 PR_CONTROL_STRUCTUREには、コントロールの特定の種類に関連する情報が含まれています。The control structure, PR_CONTROL_STRUCTURE, contains information relevant to the particular type of control. 異なる構造を持つコントロールの種類を説明します。Each type of control is described with a different structure. などのエディット コントロールは、そのようなDTBLEDIT構造を説明します。For example, edit controls are described with the DTBLEDIT structure. DTBLEDIT構造体には、メンバーには数と、使用できるコントロールとプロパティを識別するプロパティ タグの値を持つ文字の特定の種類は、コントロールに表示するリストが含まれています。DTBLEDIT structures contain members that list the number of and specific types of characters that can be placed on the control and a property tag that identifies the property whose value is to be displayed in the control. PR_CONTROL_STRUCTUREは、バイナリ プロパティとして格納されます。PR_CONTROL_STRUCTURE is stored as a binary property.

コントロール id、 PR_CONTROL_IDは、表示された表で説明されているダイアログ ボックスでコントロールを一意に識別します。The control identifier, PR_CONTROL_ID, uniquely identifies the control in the dialog box described by the display table. PR_CONTROL_IDは、表示された表を作成するのにはBuildDisplayTableで使用されるDTCTL構造体のlpbNotifcbNotifのメンバーに値を設定します。PR_CONTROL_ID is set from the values placed in the lpbNotif and cbNotif members of the DTCTL structure that is used by BuildDisplayTable to create the display table. MAPI は、場合によって表示のテーブルを結合ため、 PR_CONTROL_ID内の識別子は常に一意であります。Because MAPI sometimes combines display tables, the identifier in PR_CONTROL_ID should always be unique. 通常、プロバイダーは、その一意性を保証するPR_CONTROL_IDするGUID構造体を割り当てます。Typically, providers assign a GUID structure to PR_CONTROL_ID to ensure its uniqueness. 表示テーブルの通知が生成されるときは、 TABLE_NOTIFICATION構造体のPR_CONTROL_IDプロパティが含まれます。The PR_CONTROL_ID property is included in the TABLE_NOTIFICATION structure when a display table notification is generated.

詳細表示のテーブルは、テーブルの実装の表示詳細表示のテーブルの通知を参照してください。For more information about display tables, see Display Table Implementation and About Display Table Notifications.

関連項目See also

MAPI テーブルMAPI Tables