Обычно, когда мы хотим обернуть Window / Thread в объекте C ++, мы делаем это, передавая указатель this
через SetWindowLong/GetWindowLong
или SetProp/GetProp
для Window и как lpParameter
для CreateThread
/etc.
Мой вопрос относится к крючкам. Каков элегантный подход для передачи указателя 'this' в процедуры обратного вызова SetWindowsHookEx , или другими словами Как обернуть процедуру обратного вызова хука?
Поскольку SetWindowsHookEx
не принимает аргумент UserData , я не вижу много вариантов, кроме использования неинкапсулированных, т.е. глобальных / статических / TLS данных.