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を返します。 その他の使用可能な値は次のとおりです。
リターン コード | 説明 |
---|---|
|
オブジェクトは、このメッセージの処理を続行する必要があります。 |
注釈
オブジェクト サーバーは OleTranslateAccelerator を呼び出して、オブジェクトのコンテナーが lpFrameInfo によって指すコンテナーのアクセラレータ テーブルに従ってアクセラレータキーストロークを変換できるようにします。 包含オブジェクトはアクティブオブジェクトですが、オブジェクトのサーバーは常に受信したメッセージを最初に翻訳する機会があります。 これが望ましくない場合、サーバーは OleTranslateAccelerator を 呼び出して、オブジェクトのコンテナーにチャンスを与えます。 キーボード入力がコンテナー指定のアクセラレータ テーブルにあるアクセラレータと一致する場合、 OleTranslateAccelerator は IOleInPlaceFrame::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 で導入) |