Its not that easy. Win32 API is not static, in evolves. While yes, it can provide great backward compat, new stuff is introduced ever new OS release (or Win10 update), so its pretty much easy to destroy portability to older version. To keep portability, you must target lowest API version you want, and keep it using like this.