I've noticed something since I started writing DotNet code. It seems that people aren't being taught or are simply ignorant of the Windows API, and don't know to think that far outside the box when they need to do something that more experienced programmers (people that started programming before 2001) are more ready/able to fall back to.
One of my favorite sites is pInvoke.net
]. It contains invaluable information regarding the use of the Windows API via the
namespace, and it contains not only the correct method prototypes, but examples for using most of the API calls.
Using the Windows API is an essential part of the development process regardless of what Microsoft tries to tell you.
I've been paid as a programmer since 1982 with experience in Pascal, and C++ (both self-taught), and began writing Windows programs in 1991 using Visual C++ and MFC. In the 2nd half of 2007, I started writing C# Windows Forms and ASP.Net applications, and have since done WPF, Silverlight, WCF, web services, and Windows services.
My weakest point is that my moments of clarity are too brief to hold a meaningful conversation that requires more than 30 seconds to complete. Thankfully, grunts of agreement are all that is required to conduct most discussions without committing to any particular belief system.