使用している古いレガシ アプリのメッセージ ハンドラーを変更したいのですが、それ以上のソースがありません。ソースを持っている dll で、ウィンドウ メッセージをインターセプトしてアプリに渡したいと考えています。これは可能ですか?私は次の行に沿って何かを試しました:
WNDPROC lpfnWndProc = NULL;
void GetHandler()
{
HINSTANCE hInstance = GetModuleHandle(NULL);
HWND hWnd = GetActiveWindow();
WCHAR lpClassName[1024];
GetClassName(hWnd,lpClassName,1024);
WNDCLASSEX wc;
GetClassInfoEx(hInstance, lpClassName, &wc);
lpfnWndProc = wc.lpfnWndProc;
wc.lpfnWndProc = NewMessageProc;
RegisterClassEx(&wc);
}
ただし、GetActiveWindow は失敗し、NULL を返します。これを行う簡単な方法はありますか。事実、単純に別のメッセージ ハンドラを追加できれば幸いです。