IsAccelerator

指定されたキーストロークが、指定されたアクセラレータテーブル内のアクセラレータに対応するかどうかを判定する。

IsAccelerator hAccel, cAccelEntries, lpMsg, lpwCmd

hAccel : [intptr] アクセラレータテーブルへのハンドル。
cAccelEntries : [int] アクセラレータテーブル内のエントリ数。
lpMsg : [var] 変換対象のキーストロークメッセージへのポインタ。
lpwCmd : [var] キーストロークに対応するアクセラレータがある場合、対応するコマンド識別子を受け取る変数へのポインタ。このパラメータは NULL でもよい。

(プラグイン / モジュール : ole32.dll)

解説

指定されたキーストロークが、指定されたアクセラレータテーブル内のアクセラレータに対応するかどうかを判定する。

[戻り値]
メッセージがオブジェクトアプリケーションのものである場合、戻り値は TRUE
である。メッセージがオブジェクトのものではなくコンテナに転送すべき場合、戻り値は FALSE である。

[備考]

オブジェクトがインプレースでアクティブな間、そのオブジェクトは常に最初にキーストロークをアクセラレータに変換する機会を持つ。キーストロークがそのアクセラレータの一つに対応する場合、オブジェクトは
TranslateAccelerator 関数の呼び出しが失敗した場合でも、OleTranslateAccelerator
関数を呼び出してはならない。この方法でキーストロークを処理しなかった場合、一貫性のない動作を招く恐れがある。キーストロークがオブジェクトのアクセラレータの一つでない場合、オブジェクトは
OleTranslateAccelerator
を呼び出して、コンテナ側でアクセラレータ変換を試みるようにしなければならない。オブジェクトのサーバーは IsAccelerator
を呼び出して、アクセラレータメッセージが自身のものかどうかを判断できる。一部のサーバーは独自にアクセラレータ変換を行い、TranslateAccelerator
を呼び出さない。そのようなアプリケーションは、すでに情報を持っているため IsAccelerator を呼び出さない。

情報

プラグイン / モジュールole32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ole32_gen2.hs