Пытаюсь понять, для чего такого странного юзается тип hwnd. Иногда проги юзают переменные hwnd, которые как бы должны юзаться как пойнтеры, для окон, однако прога иногда юзает их как пойнтер к какой-то неизвестной структуре, или распаковывает какие-то биты. В примере единственно где видно эту функцию это когда она передается как параметр во время создания окна, т.е. последние два параметра принадлежат типам WPARAM и LPARAM. Но в самой функции прога обращается с ними как с HWND.