What's more, I think you're wrong. GPL programs can link to Windows DLLs because Windows DLLs do not have restrictive licensing on them. They're commercial, yes, but they have no restrictions on who can link to them, as long as you own a legal copy of them. (Which you got with Windows.)
Nope. From the GPLv2: "For an executable work, complete source code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable."
That means that normally, you would have to provide the source code to the Windows DLLs, because they are required to execute your program. However, this clause grants a special exception to "major components of the operating system", so you are not required to provide the source code to the Windows DLLs in order to distribute the GPLv2 program.