紀元前 2005/08/05~2006/08/13 External IME Controllerを改造してデータ取り 0.01 2006/08/16 機能試作を終えた後の最初の原型 とりあえずタスクトレイにアイコン入れるだけ 0.02 2006/08/16 ポップアップメニューの実装 0.03 2006/08/18 DLLを追加して最低限の機能の実装完了 0.04 2006/08/18 IMEモード変更を最小限の場合に限定 0.05 2006/08/18 HELPキーをENDにする機能を追加してみる (98キーボード対策) 0.06 2006/08/22 exe側からdllの動作を設定できるようにする コンパクトキーボードのキー入れ換えを入れてみる 0.07 2006/09/03 改造キーボートレイアウトドライバ併用開始 DOS/Vのひらがな・カタカナキーでのカナロック動作支援 RagnarokOnlineの除外(keybd_eventが効かない) 0.08 2006/09/20 コンパクトキーボードのキー入れ換え廃止 バージョン情報がいくつも開けてしまうのを対策 DLLにもバージョンリソース追加 0.09 2007/06/14 Visual Studio 2005対応 カナリピート対策 リソース修正 0.10 2007/07/13 _splitpath_sの引数修正 .iniファイルへの保存を設定変更時のみに カナインジケータ機能追加 バージョンを含むリソースをrc2へ移動 不要なシンボル削除 0.11 2007/07/20 SendMessageの呼び出し回数軽減(数回程度になったはず) カナキー押下時のShell_NotifyIcon呼び出し回数を1回に軽減 クラス名をMFC任せでなくDeltaEndと設定 0.12 2007/07/25 ビルド構成の追加、Releaseを静的リンクと動的リンクに分ける PostMessage/SendMessageの呼び出し回数軽減、確実に1回に フック内からはSendMessageせず、exeへPostMessageしてそこからSendMessageするよう変更 ソースコードレベルでのUnicode対応 より厳格なIME判定導入 0.13 2007/07/25 カナロック支援を動作させないクラス名をハードコードから.iniへ 0.14 2007/07/26 カナ入力モードを全角ひらがな固定でなく復元するように 0.15 2007/07/30 カナ入力モードの保存をキー入力時からIMEメッセージ時に変更 IME入力コンテキスト解放忘れ修正 フック開放時に無視クラス名参照で保護違反が起こる可能性があったのを修正 0.16 2007/08/06 IME OFFでウィンドウが切り替わった場合も反映するように 起動時にカナステータスの反映 Visual Studio .NET 2003を完全併用に 0.17 2008/01/22 カナロック支援が常に有効になっていた(0.13からのバグ) メニューからPoseMessageとSendMessageの切り替え 0.20 2008/07/18 Vista でタスクバーと DLL からのメッセージが通るよう修正 0.30 2009/03/31 Visual Studio .NET 2003廃止 DLLに構造体で渡して設定APIを一つにまとめる ATOK等にてタブキーで確定+フォーカス移動する機能追加 0.40 2011/10/21 Visual Studio 2008でMFC無しで完全に作り直し MacBookのCtrl+1発行機能を追加 VJE-Delta4.0対応を外す アイコン変更 0.41 2011/10/27 設定ファイル読み書きの再実装 keybd_eventからSendInputに変更 発行も仮想キーコードでなくスキャンコードに変更 0.12のPostMessage呼び出し回数軽減を再実装 WM_ENDSESSIONでの終了処理 アイコン修正・通知領域用の小さいものだけに 0.42 2011/10/28 Boot Campアイコン再登録機能を追加 アイコン再修正、やっぱり一通りの解像度 0.43 2011/11/01 ファイルマッピングでの設定共有を実装 低水準キーボードフックをexeに移動 64ビット版の追加 32/64同期動作の実装 0.44 2011/11/02 モジュール定義ファイルの廃止 exe/dll重複コードの共有化 32/64同期動作時のバージョンダイアログへの表示 アイコンリソース開放忘れの修正 0.45 2011/11/06 スレーブ喪失時スレーブ再起動を実装 マスター喪失時スレーブ終了を実装 32ビットWindowsでの64ビット版起動をしないよう修正 スレーブプロセスからBoot Campアイコン再登録時に落ちるバグ修正 0.46 2011/11/16 WM_CLOSE対応 ブラウザのフォームでIMEを制御される場合にタブが余計に発行される対策 ATOK2011対応 キーボードフックの再入対策 0.461 2011/11/26 カナキーのコード指定 通知領域アイコン登録時のERROR_FILE_NOT_FOUND対策 0.462 2011/12/02 全角半角の判別をスキャンコードに変更 バージョン情報のx86/x64判別をプリプロセッサからコードに変更 0.50 2012/01/27 DLLロードの無視プロセス名を実装 キーボード操作の無視クラス名(旧版相当)を実装 DLLを即座に開放するため終了時にWM_NULLをブロードキャスト 起動時フック設定失敗のエラーメッセージ修正 VJE-Delta4.0対応を復活 vjeime.imeパッチ更新 iniファイルからscKana項目を廃止 通知領域アイコン登録時のERROR_FILE_NOT_FOUNDを成功扱いに変更 0.51 2012/02/08 グローバルに配置した関数の移動 バージョンリソースをエディタから隠蔽 メニュー表示をWM_RBUTTONUPに変更 0.52 2012/03/01 DLL動的リンク用クラスの作り直し 通知領域の操作をクラス化して分離 0.53 2012/03/14 DLL強制開放を実装 アイコンリソースもエディタから隠蔽 Vista以降でメニュー表示をWM_CONTEXTMENUに変更 NT4.0対応 0.531 2012/03/28 多重起動の防止が不完全だったのを修正 シャットダウン時に同期動作を停止できていなかったのを修正 0.54 2012/06/18 ダイアログプロシージャの各メッセージ処理をメンバ関数に分離 不要コード削除 ダミー関数名変更 ウィンドウプロシージャ戻りフックの処理を整理 共有メモリ処理コードの整理 共有メモリ用変数(2つ)を構造体に変更 終了時にアクセス違反が起こる可能性があったのを修正 0.55 2012/06/28 同期動作クラスの改良 マスターのタイマーが終了されていなかったのを修正 終了時のシーケンスがスパゲティになっていたのを整理 残留DLLが共有メモリを離していない場合も、それを流用して起動 スレーブプロセスがフリーズしている場合に強制終了 スレーブ接続の可否判断はマスターに集約 独自でのダイアログは出力せず通知のみに変更 CloseAppが複数回呼ばれていたのを修正 共有メモリの内容をセキュリティの観点から変更 直前に押された仮想キーコード→直前がタブキーだったかフラグ 0.60 2012/09/26 同期クラスの参照カウンターの管理をマスターに集約 併せて構造体から削除 スレーブの初期化をサーバーからの応答メッセージ待ちに変更 初期化失敗の場合に一度もフックを設定せず終了するため 同期クラスのメッセージ表示をメインに移動 ステータスとしてPostMessageで通知する形に変更 BOOL型設定値の類似処理を一まとめに UI部分もリソースIDを連番にして対応 ウィンドウクラス・ダイアログクラスでthisポインタ保存をプロパティからstd::mapに変更 DLL動的リンク用クラスの改良 マクロを活用してシンプルに SEARCHの場合にもフルパスを取得できるよう更新 ウィンドウスタイルをWS_POPUPに変更(0.30までと同様) DLL強制開放時のプロセス列挙を32/64それぞれに限定 0.61 2012/03/04 メッセージ専用ウィンドウ対策 WM_NULLをSendNotifyMessageからPostMessageに戻す 右クリックメニュー直下の機能設定が動作していなかったバグ修正 ANSI_STRINGを自前での初期化からRtlInitAnsiStringに変更 winternl.hとntstatus.hのインクルード スレーブモード判別を同期動作クラスへ移動 関数宣言の仮引数constの徹底 右クリックメニュー処理部のメッセージループ削除 同期動作クラスのメッセージ処理を自前の隠しウィンドウに移動 0.62 2013/12/18 マスタープロセス喪失時のMessageBoxがいくつも出たのを修正 主にPowerPoint向け、起動時の強制IME ONを止める機能追加 またその設定値を得る手段として、WM_IME_NOTIFYの様子を見るツール追加