Ive used a couple of the above for other things, not C++ / windows specific training. They generally have good content for beginners but nothing worth spending money on for a beginner. The advanced courses, check feedback/reviews of the class before buying, as they vary in quality and value.
Personally I prefer to dig around on my own in the free stuff. Microsoft has example programs in their help files for visual studio, and there are tons of how-tos online, eg how to re-create notepad yourself, how to recreate paint yourself, etc. The introductory level free training is very, very good. Once you get past the intro level, if you have a specific need that isn't available online, then you can dig into buying a book or a course depending on what it is.
Petzold is definitely one of those 'should read' books but is long overdue an update (sixth edition doesn't count).
Well truthfully if you want to start to learn to program Windows today C# might be a better alternative than C++. But for C++ the fifth edition is the one to get, if you decide on C# then the sixth edition is the better choice.