コントロール オブジェクトの実装

適用対象: Outlook 2013 | Outlook 2016

コントロール オブジェクト( IMAPIControl : IUnknown インターフェイスをサポートするオブジェクト)は、MAPI ダイアログ ボックスに表示されるボタンに機能を追加するためにプロバイダーによって実装されます。 コントロール オブジェクトは、ボタンに対してのみ実装できます。

IMAPIControl には、 GetLastErrorGetStateActivate の 3 つのメソッドがあります。

MAPI は GetState を呼び出して、ボタンを無効にするかどうかを判断します。 GetState は、次の状況で呼び出されます。

  • ボタンが表示されるダイアログ ボックスが最初に表示される場合。

  • ボタンに対して表示テーブル通知が発行されたとき。

ユーザーがボタンを操作できない場合は lpulState パラメーターの内容をMAPI_DISABLEDに設定し、ユーザーが操作できる場合はMAPI_ENABLEDします。

ユーザーがボタンをクリックすると、MAPI は アクティブ化を呼び出します。 アクティブ化 すると、ボタンに関連付けられているタスクが実行されます。 このタスクは、ダイアログ ボックスの表示やプロパティの更新など、プロバイダーに適したものにすることができます。 ユーザーがタスクを取り消したためにタスクが失敗した場合は、MAPI_E_USER_CANCELを返します。 その他のエラーの原因については、適切なエラー値を返します。

タスクが成功し、ダイアログ ボックスの別のコントロールに反映されるプロパティの変更にリンクされている場合は、 ITableData::HrNotify を呼び出します。 HrNotify は、TABLE_NOTIFICATION構造体の変更されたプロパティの PR_CONTROL_ID (PidTagControlId) プロパティで表示テーブル通知を発行するために呼び出 されます 。 構造体に新しいプロパティ値を配置しないでください。代わりに、 IMAPIProp::GetProps が呼び出されたときにそれを返します。 通常、表示テーブル通知を使用してコントロールを無効または有効にすることはできませんが、ボタンで使用できます。 MAPI は、通知に応答するように変更されたコントロールを更新します。

MAPI は、Activate がMAPI_E_USER_CANCEL以外のエラーを返すときに、コントロールの GetLastError メソッドを呼び出します。 GetLastError がMAPIERROR 構造体に拡張エラー情報を配置し、パラメーターの内容で返す場合the_lppMAPIError_、MAPI はユーザーに対して表示します。

関連項目

MAPI サービス プロバイダー