次の方法で共有


IMAPIForm::DoVerb

適用対象: Outlook 2013 | Outlook 2016

フォームが特定の動詞に関連付けるタスクを実行することを要求します。

HRESULT DoVerb(
  LONG iVerb,
  LPMAPIVIEWCONTEXT lpViewContext,
  ULONG_PTR hwndParent,
  LPCRECT lprcPosRect
);

パラメーター

iVerb

[in]フォームの動詞のいずれかに関連付けられた数値。

lpViewContext

[in]ビュー コンテキスト オブジェクトへのポインター。 lpViewContext パラメーターには null を指定できます。

hwndParent

[in]このメソッドが表示するダイアログ ボックスまたはウィンドウの親ウィンドウへのハンドル。 ダイアログ ボックスまたはウィンドウがモーダルでない場合、 hwndParent パラメーターは null にする 必要があります。

lprcPosRect

[in]フォームのウィンドウのサイズと位置を含む Win32 RECT 構造体へのポインター。

戻り値

S_OK

動詞が正常に呼び出されました。

OLEOBJ_S_CANNOT_DOVERB_NOW

iVerb パラメーターで表される動詞は有効ですが、フォームは現在関連付けられている操作を実行できません。

注釈

フォーム ビューアーは IMAPIForm::D oVerb メソッドを呼び出して、フォームがサポートする各動詞に関連付けるタスクをフォームに実行するよう要求します。

サポートされている各動詞は数値で識別され、iVerb パラメーターで DoVerb に渡されます。 DoVerb の一般的な実装には、フォームの iVerb パラメーターに対して有効な値をテストする switch ステートメントが含まれています。

実装に関するメモ

フォーム ビューアーが lpViewContext パラメーターでビュー コンテキストを指定する場合は、IMAPIForm::SetViewContext メソッドの以前の呼び出しで渡されたビュー コンテキストではなく、DoVerb 実装で使用します。 内部データ構造に必要な変更を行い、ビュー コンテキストを保存しないでください。

DoVerb 実装で次のタスクを実行します。

  • iVerb パラメーターに関連付けられている特定の動詞に必要なコードを実行します。

  • 必要に応じて、元のビュー コンテキストを復元します。

  • 不明な動詞番号が渡された場合は、MAPI_E_NO_SUPPORTを返します。 それ以外の場合は、実行された動詞の成功または失敗に基づいて結果を返します。

  • フォームを閉じます。 DoVerb 呼び出しが完了した後は、フォームを閉じる必要があります。

Print などの一部の動詞は、 DoVerb 呼び出しに関してモーダルである必要があります。つまり、 DoVerb 呼び出しが返される前に、指定された操作を完了する必要があります。

フォームのウィンドウで使用される RECT 構造体を取得するには、 GetWindowRect 関数を呼び出します。

ハンドルは hwndParent パラメーターに保存しないでください。これは通常、 DoVerb が完了するまで有効なままですが、呼び出しの戻り直後に破棄される可能性があるためです。

呼び出し側への注意

非モーダル動詞をモーダル動詞として機能させるには、lpViewContext を、その IMAPIViewContext::GetViewStatus メソッドからVCSTATUS_MODAL フラグを返すビュー コンテキストの実装をポイントします。

MAPI の動詞の詳細については、「 フォーム動詞」を参照してください。 OLE での動詞の処理方法の詳細については、「 OLE とデータ転送」を参照してください。

MFCMAPI リファレンス

MFCMAPI のサンプル コードについては、次の表を参照してください。

ファイル 関数 コメント
MyMAPIFormViewer.cpp
CMyMAPIFormViewer::CallDoVerb
MFCMAPI では、 IMAPIForm::D oVerb メソッドを使用してフォーム上の動詞を呼び出します。

関連項目

IMAPIForm::SetViewContext

IMAPIViewContext::GetViewStatus

IMAPIForm : IUnknown

[�R��h �T���v���Ƃ��� MFCMAPI

フォーム動詞