Win32 is a old, C- & COM-style, solid-proof set of APIs. It works on every of PC version supported of Windows (though obviously with some limitations), and will probably works till the end of Microsoft Windows on PC.
With Win32 APIs you are like a god in the OS: you are allowed to do quite everything, which means you are able to obtain quite every issue that exists in past, present and future in all discovered and undiscovered dimensions [cit.] of Microsoft Windows. Some of this issues can be really difficult to catch for a newbie.
Using Win32 will quite obligate you to deal with how the OS works in many different ways (which is a good thing, imo). Some (few) Win32 APIs will be more familiar if you have a POSIX development experience. You will find also tons of examples and books, both good and bad, around the web.
If you exclude any used third party library, Win32 applications do not need usually any kind of extra license to be distributed and sold.
UWP is kinda new, refreshed and restyled (renamed?) version of the APIs for Windows Store. It works for both PC (windows 10) and Phones (Windows 10 mobile).
UWP allows a subset of Win32 API, larger then was with W8/W8.1. This means you are less inclined to commit disasters.
You will find more friendly if you have mobile development experience. You will find less example and books around the need, but on github there is a good set of Microsoft samples.
If we speak about pure performance, Win32 applications are not sandboxed by default like UWP and you are allowed to use the APIs with lowest level of abstraction. However, generally speaking UWP environment is not an issue at all if we talk about performance and you could find easily to boost your application with hardware accelerated GUI elements thanks to XAML.
If we speak about DirectX, you can use the news APIs in both Win32 and UPW environments, though some restrictions apply (biggest example: swap-chain).