The SDK is not distributable by legal issue, the use license from MS clearly specify this. For a novice to install separate headers would be not an easy job so many many potential users will renounce to PellesC as a C programming training tool.
Yet, oddly enough that's what's happening right now.
Based on experience in other forums, here's how it goes for most people... They will get curious about programming and will go out on the net looking for a free "thingy" to experiment with and will find Pelles C. Many will download a book or a string of tutorials and do some console mode programming (still the best way to learn). Then one of two things happens; either they give up or they hit the limits of Pelles C and they will end up with Visual Studio Express or one of the many MinGW implementations... at that point we lose them.
But we do more than simply losing them... because of the limitations of free VC++ and MinGW setups (No IDE, no resource tools, etc) they will usually end up using WxWidgets, QT or some other massively bloated library that ultimately produces really terrible software. The whole industry looses.
If you program something enough advanced you should be able to deal with advanced issues, so I don't see the point.
Ok, lets try this on for size... Some time ago, before coming to Pelles C, I wrote a very comprehensive Inventory Control program in Turbo Pascal. I wrote a custom data base, all the user interfaces, automated tasks such as purchasing and invoicing and even included self-maintenance. When Borland ditched Pascal for Delphi, my project --by then a wage earner-- was orphaned. So I took the decision to rewrite in Pelles C and convert it to a multi-tasking Windows program at the same time. Nearly half a million lines of code, no small challenge, to be sure. The package has since been sold to another programmer (for a very nice lump of change, I might add) who is now working feverishly to convert it to MinGW.
I would say that qualifies me as sufficiently advanced. In all that, I've tried over and over again to get the MS Headers and Libs working with Pelles C... and it ain't happening.
The fact that PellesC works happily with untouched MS headers contraddict the point that it requires twickings to make headers compatible with PellesC compiler and reinforces my affirmation above.
Pelles C
does not work happily with untouched MS headers. That you can compile some little program using a couple of headers and a message box with the Windows.h header does not imply anything other than the Windows.h header contains nothing that needs conversion... that you got lucky.
Try this in a serious project like a media player or desktop enhancement where you need COM objects or try writing your own IDE. You will very rapidly hit the wall... Yet, I can use C-99 standards with TDM-GCC and write these things easily enough... Because the headers are converted to work with that compiler.
Pelles C is most decidedly a beginners tool, always has been.
Duplicate my test bed... start working through the errors... you will find that most headers need massive changes including redefinition of variable types, inclusion of CRT headers and so on to work. If POCC didn't stop at 100 errors, my little test bed would produce tens of thousands of errors.
Why should we waste time then? It works for me and I was able to do it, but while it took me a couple of hours to make it work, I had to spend much more time to write documentation and support, that was a kind of due to share the work with others after I have made public the first step ...
Perhaps one rason to waste the time is that at the end of it
everybody, including you ends up with a far better compiler/library and API.
You cannot simply include all headers, many of them are C++ only (as gdiplus.h) and other specialized for object programming embedded in the MSVC compilers. You will never ever can put all MS headers in a plain C compiler (PellesC or whatever...)
But you said we can... You've been insisting that Pelles C works with untouched headers...
I proved it does not.
The question is... what to do about it.