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 メソッドを使用してフォーム上の動詞を呼び出します。 |