Como saber se a tecla Caps Lock está ativada, usando linguagem C?

Como saber se a tecla Caps Lock está ativada, usando linguagem C?
Não dá pra fazer ` if (GetAsyncKeyState(VK_CAPITAL) == -32768){

}` porque isso só vai retonar verdadeiro se a tecla estiver sendo pressionada, preciso de alguma forma de descobrir se a tecla CAPS LOCK está ativa.
Agradeço desde já.

No Windows, você pode usar a função GetKeyState. Mas você precisa fazer uma comparação de bits, não do valor retornado pela função (que indica se a tecla está pressionada, como você mesmo reparou). Tente:

if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0)
//capslock está ativa
   else
//capslock está inativa

Vi em: https://vcpptips.wordpress.com/2009/01/19/how-to-check-the-caps-lock-is-on-or-off/

Documentação de GetKeyState: https://msdn.microsoft.com/en-us/library/ms646301(VS.85).aspx

Abraço

Perfeito fera. Havia encontrado a mesma resposta em um site gringo. Vlw