А может лучше использовать хуки (HHOOK SetWindowsHookEx(int idHook, HOOKPROC ipfn, HINSTANCE hmod, DWORD dwThreadId)?
По моему SetWindowsHookEx в данной ситуации - это извращение, даже если и будет работать. Пиши драйвер и загружай его через CreateFileA и затем через DeviceIoControl