Под WinRT (Metro/UWP) пока рановато писать, хотя бы потому, что мала популярность виндов 8 и выше, а на ниже его нет вообще.
Нужно писать классические десктопные приложения, которые идут хотя бы на WinXP и выше.
WinRT не является для них основой, он прилеплен где-то сбоку как другая платформа.
А вот Win32 - является, все фреймворки (.NET, VCL, Qt...) основаны на WinAPI.
Но непосредственно на WinAPI никто не пишет приложений, это слишком тяжело и долго, основную часть кода пишут на фреймворке (под винду обычно лучше всего C# и .NET), а вот те вещи, которые на фреймворке не сделать, - делают на WinAPI.
Поэтому полезно изучать WinAPI, но реально нужнее знать именно те его функции, для которых нет оберток в фреймворке. И изучать их по мере необходимости: писал программу - понадобилась - погуглил - изучил - вставил DllImport - применил - работает.
Хотя и тот же GUI или работу с файлами или HTTP тоже полезно изучать параллельно на .NET и на WinAPI, для знания основ, ваш вопрос "кто на ком основан" это тоже поможет прояснить.