X Wheel Plug-Inの拡張子はxwpiです。
全てのプラグインで GetPluginType, GetPluginVersion, GetPluginText, InitializePlugin を実装して下さい。 必要であれば InitializePlugin2 を実装して下さい。
InitializePlugin と InitializePlugin2 の関係については InitializePlugin2 の解説を参考にして下さい。
プラグインが実装している機能を調べるのに使われます。
この関数はパラメータをとりません。
プラグインのタイプを示す DWORD 値を返します。次の値の組み合わせです。
定数 | 意味 |
---|---|
PLUGIN_TYPE_LANGUAGE | 言語プラグインです。これに限り単独で指定して下さい。 |
PLUGIN_TYPE_HASSETTING | 設定ダイアログを持っています。 |
PLUGIN_TYPE_ACTION | アクションプラグイン機能を実装しています。 |
バージョン情報の取得に使われます。
この関数はパラメータをとりません。
バージョン情報を含む32ビット符号無し整数を返します。 そのうち上位16ビットがそのプラグインが準拠するX Wheel Plug-In規格のバージョン、 下位16ビットがプラグイン自体のバージョン情報を表します。
戻り値の作成には MAKEVERSIONDWORD マクロを使うと便利です。
上位← 8bits | 8bits | 8bits | 8bits →下位 |
---|---|---|---|
X Wheel Plug-In メジャーバージョン |
X Wheel Plug-In マイナーバージョン |
プラグイン メジャーバージョン |
プラグイン マイナーバージョン |
プラグインに関するテキストを取得するのに使われます。 指定された言語識別子がサポート外の物であった場合はエラーを返すのではなく、言語依存しないアルファベット文字列を格納すべきです。
プラグインに関するどういったテキストを返すかを表す UINT 値が指定されます。
定数 | 返すべきテキスト |
---|---|
PLUGIN_TEXT_NAME | プラグイン名 |
PLUGIN_TEXT_VERSION | バージョンを表す文字列 |
PLUGIN_TEXT_DESCRIPTION | プラグインの説明 |
PLUGIN_TEXT_COPYRIGHT | 著作権情報 |
PLUGIN_TEXT_SUPPORTURL | サポートURL |
PLUGIN_TEXT_SUPPORTMAILADDRESS | サポートE-Mailアドレス |
指定されたテキストを格納するバッファが指定されます。
lpString が指すバッファのサイズがワイド文字数の単位で指定されます。 指定されたテキストのうちこのサイズを超える部分は切り捨てます。 0 が指定された場合は、必要なバッファのサイズ(終端null文字含む)をワイド文字数で返し、lpString が指すバッファは使ってはいけません。
現在選択されている言語が指定されます。 この値は MAKELANGID マクロが返す値と同じ形式です。
uSize に 0 以外の値が指定され、関数が成功した場合は、lpString が指すバッファに書き込まれたワイド文字の数(終端null文字含まず)を返します。 uSize に 0 が指定され、関数が成功した場合は、文字列を受け取るバッファに必要なサイズ(終端null文字含む)をワイド文字数で返します。 関数が失敗すると、0 を返します。
プラグインを初期化します。 DllMain で行うわけにいかない、DLLのロードやファイルアクセス等の処理を行います。
プラグインが使用するメッセージ出力関数のポインタが指定されます。 この関数はプラグインのどこからでも使用することができます。 関数の詳細は OutputMessage を参照。
通常のプラグインでは現在選択されている言語が指定されます。 この値は MAKELANGID マクロが返す値と同じ形式です。
言語プラグインでは常に 0 が指定されます。 これはこの関数が呼ばれた時点ではまだ使用する言語が確定していないためです。
初期化が成功すれば TRUE、それ以外は FALSE を返します。 FALSEが返ってきた場合、再起動されるまでそのプラグインを使用しません。 これを利用して、OS 等の条件でプラグインの使用を禁止することも出来ます。
プラグインを初期化します。 DllMain で行うわけにいかない、DLLのロードやファイルアクセス等の処理を行います。
この関数は必ず実装する必要はありません。
X Wheelがプラグインバージョン1.1に対応している場合、 プラグインが GetPluginVersion でプラグイン規格1.1以上であると返し、かつ InitializePlugin2 が実装されていれば InitializePlugin2 が呼び出され、InitializePlugin は呼び出されません。 それ以外の場合はInitializePluginが呼び出されます。
プラグインが使用するメッセージ出力関数のポインタが指定されます。 この関数はプラグインのどこからでも使用することができます。 関数の詳細は OutputMessage を参照。
通常のプラグインでは現在選択されている言語が指定されます。 この値は MAKELANGID マクロが返す値と同じ形式です。
言語プラグインでは常に 0 が指定されます。 これはこの関数が呼ばれた時点ではまだ使用する言語が確定していないためです。
プラグインがどこから呼ばれたかを示すINT値が指定されます。 取りうる値は以下の通りです。
定数 | 呼び出したモジュール |
---|---|
CALLER_X_WHEEL | X Wheel 本体 |
CALLER_MOUSE_PROPERTY | マウスのプロパティ |
初期化が成功すれば TRUE、それ以外は FALSE を返します。 FALSEが返ってきた場合、再起動されるまでそのプラグインを使用しません。 これを利用して、OS 等の条件でプラグインの使用を禁止することも出来ます。
プラグインの解放処理をします。 X Wheel が不正終了した場合は当然この関数は呼び出されないので、他プロセスと連動している場合はこの関数だけをトリガーにするのではなく、 X Wheel 自体の存在も監視するようにして下さい。
この関数は必ず実装する必要はありません。
X Wheelがプラグインバージョン1.1に対応している場合、プラグインにUninitializePluginが実装されていれば呼び出されます。 X Wheelがプラグインバージョン1.1に対応していない場合、UninitializePluginは呼び出されないので注意して下さい。
現在選択されている言語が指定されます。 この値は MAKELANGID マクロが返す値と同じ形式です。
プラグインがどこから呼ばれたかを示すINT値が指定されます。 取りうる値は以下の通りです。
定数 | 呼び出したモジュール |
---|---|
CALLER_X_WHEEL | X Wheel 本体 |
CALLER_MOUSE_PROPERTY | マウスのプロパティ |
プラグインバージョン 1.1 では常に TRUE を返します。
言語プラグインはX Wheel NT専用です。 また、アクションプラグイン等の他の機能を同時に実装することは出来ません。
言語プラグインでは以下の関数を実装して下さい。
対応している言語識別子を取得する際に呼ばれます。
この関数はパラメータをとりません。
言語識別子を返します。 一般的に MAKELANGID マクロが使用されます。
対応しているX Wheel NTのバージョンを取得する際に呼ばれます。
この関数はパラメータをとりません。
バージョンを表す DWORD 値を返します。 通常は Language.h で定義されている LANGUAGE_VERSION を返します。
設定ダイアログを持つプラグインでは以下の関数を実装して下さい。
プラグインの設定ダイアログを出す際に呼び出されます。 この中で設定ダイアログを出して下さい。
ダイアログの親ウィンドウが指定されます。
現在選択されている言語が指定されます。 この値は MAKELANGID マクロが返す値と同じ形式です。
この関数は戻り値を返しません。
アクションプラグインによって、カスタムアクションをキーボード・マウスのインプット以外にも拡張することが出来ます。
アクションプラグインでは以下の関数を実装して下さい。
アクションを実行します。 この関数が制御を返すまで、X Wheelは待機し続けます。 出来る限り短い時間で制御を返すようにして下さい。
この関数内でエラーが発生した場合、メッセージボックス等を出さないで OutputMessage 関数を使用してください。 プラグインが使用する OutputMessage 関数は InitializePlugin 関数で指定されます。
プラグイン定義の数値パラメータが指定されます。
プラグイン定義の文字列パラメータが指定されます。
対象となったプログラムのパスが指定されます。 個別の設定ではなくデフォルトで呼ばれたのであれば NULL が指定されます。
ボタンダウン時アクションならば TRUE、そうでなければ FALSE が指定されます。
現在選択されている言語が指定されます。 この値は MAKELANGID マクロが返す値と同じ形式です。
関数が成功すれば TRUE、それ以外は FALSE を返します。 FALSEが返ってきた場合、X Wheelはカスタムアクションの残りのアクションをキャンセルします。
アクションリストに表示する文字を取得する際に使用されます。
アクションの数値パラメータが指定されます。
アクションの文字列パラメータが指定されます。
ボタンダウン時アクションならば TRUE、そうでなければ FALSE が指定されます。
アクションリストに表示する文字を受け取るバッファが指定されます。
lpString が指すバッファのサイズがワイド文字数の単位で指定されます。 設定すべき文字列のうちこのサイズを超える部分は切り捨てます。 0 が指定された場合は、必要なバッファのサイズ(終端null文字含む)をワイド文字数で返し、lpString が指すバッファは使ってはいけません。
現在選択されている言語が指定されます。 この値は MAKELANGID マクロが返す値と同じ形式です。
uSize に 0 以外の値が指定され、関数が成功した場合は、lpString が指すバッファに書き込まれたワイド文字の数(終端null文字含まず)を返します。 uSize に 0 が指定され、関数が成功した場合は、文字列を受け取るバッファに必要なサイズ(終端null文字含む)をワイド文字数で返します。 関数が失敗すると、0 を返します。
『カスタムアクションの編集』ダイアログの追加メニューを作成する際に使用されます。
『カスタムアクションの編集』ダイアログの追加メニューに項目を追加する関数のポインタが指定されます。 この関数の詳細は RegisterActions を参照。
現在選択されている言語が指定されます。 この値は MAKELANGID マクロが返す値と同じ形式です。
成功すれば TRUE を、そうでなければ FALSE を返します。
アクションの詳細を設定する際に呼び出される関数です。 『カスタムアクションの編集』ダイアログで追加や編集をする際に呼ばれます。 通常はダイアログを作ることになりますが、 必要でない場合はダイアログを作る必要はありません。
ダイアログの親ウィンドウが指定されます。
アクションの数値パラメータが指定されます。
アクションの文字列パラメータが指定されます。
ボタンダウン時アクションならば TRUE、そうでなければ FALSE が指定されます。
アクションのパラメータを設定する SetActionParameter 関数のポインタが指定されます。
現在選択されている言語が指定されます。 この値は MAKELANGID マクロが返す値と同じ形式です。
設定するのであれば EDITACTION_OK を、キャンセルするのであれば EDITACTION_CANCEL を返します。
何らかの理由により、プラグインをアンロードする際にX Wheelによりブロードキャストされます。
X Wheel以外がX Wheel Plug-Inを使っている場合に不具合が起きるため、WM_UNLOADPLUGINは使われなくなりました。 1.1規格のPlug-Inであっても使わないようにしてください。
メニューに使われる文字列を指定します。
アクションの数値バラメータの初期値を指定します。
アクションの文字列バラメータの初期値を指定します。
一般プラグインがGetPluginVersion 関数で返すバージョン情報 DWORD 値を作ります。
対象としているX Wheel Plug-In規格のメジャーバージョン
対象としているX Wheel Plug-In規格のマイナーバージョン
プラグイン自体のメジャーバージョン
プラグイン自体のマイナーバージョン
X Wheel 側の関数です。 直接呼び出すことは出来ません。
プラグインからのメッセージを出力します。
出力するメッセージの種類を指定します。 以下いずれかです。
定数 | uMessageType の値 |
---|---|
MESSAGE_ERROR | エラーメッセージです。 エラーログに出力されます。 設定によってはポップアップでも表示されます。 |
MESSAGE_DEBUG |
デバッグ用メッセージです。
あくまで開発用であり、公開するバージョンでは使用しないでください。
X Wheelはそのままではデバッグログを出力しません。
デバッグログを有効にするには、レジストリの
HKEY_CURRENT_USER\SOFTWARE\Absurd Technology Lab\X Wheel キーの
DWORD値 OutputDebugLog を 0 以外にしてください。
|
出力するメッセージ文字列を指定します。
関数が成功すれば TRUE が、そうでなければ FALSE が返ります。
『カスタムアクションの編集』ダイアログの追加メニューに項目を追加します。
複数の REGISTACTION 構造体からなる 1 つの配列へのポインタを指定します。
lpActions で指定した配列の要素数を指定します。
関数が成功すれば TRUE が、そうでなければ FALSE が返ります。
アクション実行時に渡されるパラメータを指定します。
設定するパラメータの種類を指定します。 以下いずれかです。
定数 | lpParam の値 |
---|---|
ACTIONPARAM_NUMBER | DWORD 値の変数へのポインタ |
ACTIONPARAM_STRING | ワイド文字列のポインタ |
設定するパラメータを格納したアドレスを指定します。
関数が成功すれば TRUE が、そうでなければ FALSE が返ります。
プラグインバージョン | X Wheelバージョン | X Wheel NT バージョン |
---|---|---|
1.0 | 3.7以降 | 1.2以降 |
1.1 | 3.8以降 | 1.3以降 |
データ | key | name |
---|---|---|
アプリケーションディレクトリ | HKEY_LOCAL_MACHINE\SOFTWARE\Absurd Technology Lab\X Wheel |
InstallDir |
通常プラグインディレクトリ | HKEY_LOCAL_MACHINE\SOFTWARE\Absurd Technology Lab\X Wheel |
PlugInDir |
言語プラグインディレクトリ | HKEY_LOCAL_MACHINE\SOFTWARE\Absurd Technology Lab\X Wheel |
LanguageDir |