LRESULT CALLBACK WndProc(...)
は、その名前が示すように、(特定の) ウィンドウ (メッセージ) プロセッサであり、さらに処理するためにシステムによってコールバックのカスタム定義に延期されたキュー上のメッセージを分析して応答できます。
クリスがコメントで提案したように、画面上の任意の場所でマウスクリックを検出して処理したいので、1つの方法は、定義が非常に冗長である SetWindowsHookEx() を呼び出すことによってシステムに自分自身をフックすることです-それはあなたが追跡することを可能にしますシステムで起こっていることを調べ、その情報をアプリケーションに中継します。
これは、自分自身を取得するために採用する必要がある構文です
HHOOK WINAPI SetWindowsHookEx(
__in int idHook,
__in HOOKPROC lpfn,
__in HINSTANCE hMod,
__in DWORD dwThreadId
);
特定のフック ID を受け取ります。これは基本的に、システム全体から受信したいメッセージの種類を関数に伝える小さな #defines であり、WndProc と同じようにコールバックを渡しますが、今回は、システム全体に関する着信メッセージ。hMod は単に、前述の proc 関数コールバックが配置されているアプリケーションまたは DLL へのハンドルを参照します。最後のものは、システムで現在実行されているスレッドに関連し、これを 0 または NULL に設定すると、既存のすべてのスレッドのメッセージが取得されます。
重要:
Aurus の SetWindowsHookEx への呼び出しの例は、システム全体の複数のプロセス (グローバルなもの) に追加してアプリケーションに情報を返すことができる DLL ではなく、実際のアプリケーションに関連する派手な言葉であるプロセス固有のものであることに注意してください。 . 実験にのみ役立つこの強力なアプローチの代わりに、時間と労力をかけて Eugene の推奨する方法を調査することが賢明です。少し「難しい」ですが、報酬は価値があります。
仕事が少ないことが常に良い、または望ましいとは限りません。