次の方法で共有


IOleWindow::ContextSensitiveHelp メソッド (oleidl.h)

インプレース アクティブ化セッション中に状況依存のヘルプ モードを入力するかどうかを決定します。

構文

HRESULT ContextSensitiveHelp(
  [in] BOOL fEnterMode
);

パラメーター

[in] fEnterMode

ヘルプ モードを入力する必要がある場合は TRUE。 終了 する必要がある場合は FALSE。

戻り値

このメソッドは、 fEnterMode で渡された値に応じて、ヘルプ モードが正常に開始または終了した場合にS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
E_INVALIDARG
指定した fEnterMode 値が無効です。
E_OUTOFMEMORY
この操作に使用できるメモリが不足しています。
E_UNEXPECTED
予期しないエラーが発生しました。

注釈

アプリケーションは、ユーザーが次の場合に状況依存のヘルプを呼び出すことができます。

  • Shift キーを押しながら F1 キーを押し、トピックをクリックします。
  • メニュー項目が選択されているときに F1 キーを押します
Shift キーを押しながら F1 キーを押すと、フレームまたはアクティブ オブジェクトがキーストロークを受け取ることができます。 コンテナーのフレームがキーストロークを受け取る場合は、fEnterModeTRUE に設定して、含むドキュメントの IOleWindow::ContextSensitiveHelp メソッドを呼び出します。 これにより、ヘルプの状態がすべてのインプレース オブジェクトに伝達されるため、マウス クリックやWM_COMMANDを正しく処理できます。

アクティブ オブジェクトは、Shift + F1 キーストロークを受け取った場合、コンテナーの IOleWindow::ContextSensitiveHelp メソッドを fEnterModeTRUE で呼び出し、通知を受け取る必要がなくなったら、各インプレース サイトを再帰的に呼び出します。 次に、コンテナーは fEnterModeTRUE を指定して、ドキュメントまたはフレームの IOleWindow::ContextSensitiveHelp メソッドを呼び出します。

状況依存ヘルプ モードの場合、マウス クリックを受け取るオブジェクトは次のいずれかを実行できます。

  • 状況依存のヘルプがサポートされていない場合は、クリックを無視します。
  • ContextSensitiveHelpを FALSE に設定して状況依存ヘルプ モードを終了するように他のすべてのオブジェクトに指示し、そのコンテキストのヘルプを提供します。
WM_COMMANDを受け取る状況依存ヘルプ モードのオブジェクトは、状況依存ヘルプ モードを終了するように他のすべてのインプレース オブジェクトに指示し、コマンドのヘルプを提供する必要があります。

コンテナー アプリケーションがメニュー項目で状況依存のヘルプをサポートする場合は、F1 キーをインターセプトできるように独自のメッセージ フィルターを提供するか、oleSetMenuDescriptor を呼び出してメッセージ フィルターを追加するように OLE ライブラリに依頼し、lpFrame パラメーターと lpActiveObj パラメーターに有効な NULL 以外の値を渡す必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー oleidl.h

こちらもご覧ください

IOleWindow

OleSetMenuDescriptor