Есть такая замечательная WINAPI функция SetWindowsHookEx. Проблема в том, что сигнатура коллбэка, которую принимает эта функция, такая:
LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam);
Как видите, user-defined параметра, через который можно было бы передать this, нет.
Вот что я нашел, только оно не работает:
zabkat.com/blog/hook-callback-thunk-x64.htm
www.codeproject.com/Articles/16785/Thunking-in-Win...
www.codeproject.com/Articles/6731/Using-class-meth...
dj9okeyxktdvd.cloudfront.net/Articles/5717/Better-...
Вторая ссылка как-раз таки про мою проблему с SetWindowsHookEx, но оно вылетает.
Другой вариант, который я пробовал, съедает первый аргумент функции, потому что заточен под WindowProc.
Я временно решил проблему введением статической переменной, но это не выход.
Хотелось бы решить эту проблему раз и навсегда и для всех функций.