■ 技術的な解説
・拡大表示の仕組み
拡大表示するための専用ウィンドウを作ります。
CreateWindowEx APIを呼ぶときに、拡張スタイルに
WS_EX_TOPMOST | WS_EX_LAYERED | WS_EX_TRANSPARENT
を指定します。これでこのウィンドウは常に最前面に表示され、クリックしてもフォーカスを得ません。
メッセージはすべてこのウィンドウの下に重なってるウィンドウに発生します。
このウィンドウをコピー元のウィンドウの上に重ねます。
DWMのサムネイル機能でウィンドウの内容を取得し、これに拡大表示します。
・フックして補正する仕組み
マウス入力を補正するために、拡大するウィンドウを持っているプロセスに
SandBurstHook.dll をインジェクション(無理やりロードさせること)します。
ロードされた SandBurstHook.dll が補正が必要なAPIの一部コードを書き換え、
内容を修正します(APIフック)。
実行を停止するとAPIフックを戻し、SandBurstHook.dll をアンロードします。