Alright I have a couple of code snippets I want to know what exactly they do I mean what everything means not just what it is doing.

bActive = !((BOOL)HIWORD(wParam));

Alright I know it is typecasting HIWORD into a boolean variable but what is HIWORD(wParam) if I remember isn't wParam split into two 16 bit integers. So would HIWORD be taking the first of the two integers?

Thanks anyone who helps