Таким образом, я сделал это (не уверен, что это наиболее удобный способ ...):
Я запустил поток (для задачи заполнения моего входного буфера).В этой теме я создал окно только для сообщений (оно скрыто и может получать входные данные) с соответствующим классом окна.
Затем зарегистрировал необработанные устройства ввода.
Этот поток имеетсвой собственный цикл обработки сообщений.В WindowProc окна-класса я обработал входные данные.
(Для буфера вы можете использовать boost: round_buffer, это ROCKS!: D)
В этом решении вам понадобилосьесть окно, но похоже, что нет.:)
Надеюсь, это поможет.