"Учил" не только WinAPI, но и ядро NT - драйвера писал.
Начать можно с книг Ю. Щупака, вот с этой статьи:
http://msdn.microsoft.com/ru-ru/library/bb384843.aspxи любых других книг по WinAPI.
Главное - соблюдать верную методологию обучения (это касается не только WinAPI, но и чего угодно еще, просто по более высокоуровневым средствам книги еще хуже):
https://otvet.mail.ru/answer/1794451553А для продвинутых, тех, кто уже изучил основы, - только справочники: MSDN, pinvoke (если планируется работать с WinAPI из под .NET) и вообще гугл.
> Про Qt говорить не нужно.
НЕТ, как раз-таки нужно, в любом случае.
Не нужно писать программ на одном лишь голом WinAPI. В основном следует использовать высокоуровневые средства - не Qt, а лучше даже .NET, и не на С++, а на C#. А в тех местах кода, где это реально надо, - дергать хоть WinAPI, хоть ядро NT через драйвер, хоть ассемблерные вставки делать.
Любое крупное приложение имеет сложную архитектуру, состоит из модулей (библиотек/утилит/драйверов/...), написанных с применением тех средств, которые лучше подходят именно для данной подзадачи.
Больше всего в WinApi интересует взаимодействие самой программы и ОС.. Т. е как скрыть программу от панели задач, как не выводить никакого окна, либо чтоб окно перекрывало все остальные. Надеюсь понятно что имеется в виду