次の方法で共有


OleTranslateAccelerator 関数 (ole2.h)

オブジェクト アプリケーションによって呼び出され、オブジェクトのコンテナーがコンテナーのアクセラレータ テーブルに従ってアクセラレータを変換できるようにします。

構文

HRESULT OleTranslateAccelerator(
  [in] LPOLEINPLACEFRAME     lpFrame,
  [in] LPOLEINPLACEFRAMEINFO lpFrameInfo,
  [in] LPMSG                 lpmsg
);

パラメーター

[in] lpFrame

キーストロークが送信される可能性がある IOleInPlaceFrame インターフェイスへのポインター。

[in] lpFrameInfo

コンテナーから取得したアクセラレータ テーブルを含む OLEINPLACEFRAMEINFO 構造体へのポインター。

[in] lpmsg

キーストロークを含む MSG 構造体へのポインター。

戻り値

この関数は、成功したS_OKを返します。 その他の使用可能な値は次のとおりです。

リターン コード 説明
E_FAIL
オブジェクトは、このメッセージの処理を続行する必要があります。

注釈

オブジェクト サーバーは OleTranslateAccelerator を呼び出して、オブジェクトのコンテナーが lpFrameInfo によって指すコンテナーのアクセラレータ テーブルに従ってアクセラレータキーストロークを変換できるようにします。 包含オブジェクトはアクティブオブジェクトですが、オブジェクトのサーバーは常に受信したメッセージを最初に翻訳する機会があります。 これが望ましくない場合、サーバーは OleTranslateAccelerator を 呼び出して、オブジェクトのコンテナーにチャンスを与えます。 キーボード入力がコンテナー指定のアクセラレータ テーブルにあるアクセラレータと一致する場合、 OleTranslateAcceleratorIOleInPlaceFrame::TranslateAccelerator メソッドを使用してメッセージとそのコマンド識別子をコンテナーに渡します。 このメソッドは、キーストロークが使用された場合にS_OKを返します。それ以外の場合は、S_FALSEを返します。

コンテナーのアクセラレータ テーブルは、独自のアクセラレータ キーストローク変換を実行するオブジェクト アプリケーションで適切に動作するように定義する必要があります。 これらのテーブルは、次の形式になります。

"char", wID, VIRTKEY, CONTROL

これは、キーボード アクセラレータを記述する最も一般的な方法です。 これを行わないと、インプレース セッション中にキーストロークが失われたり、間違ったオブジェクトに送信されたりする可能性があります。

オブジェクトは IsAccelerator 関数を呼び出して、アクセラレータキーストロークがオブジェクトまたはコンテナーに属しているかどうかを確認できます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ole2.h
Library Ole32.lib
[DLL] Ole32.dll
API セット ext-ms-win-com-ole32-l1-1-3 (Windows 10 バージョン 10.0.10240 で導入)

こちらもご覧ください

IOleInPlaceFrame::TranslateAccelerator

IsAccelerator