As of Node.js 0.7.0-alpha, there is no blessed path for writing native Node.js extensions on windows. However, it is not impossible to build fully compatible native node modules using Visual Studio. Doing so properly, however, requires a bit of finnesse.
Want to see what I've been working on recently?
Download them here or check what I have open sourced on Bitbucket
Using Detours To Automate Getopenfilenamew
One of the easier things to do with the Win32 API is to automate an application. For any given application, the vast majority of your interactions with it will end up being through the Win32 GUI, or through something wrapping the Win32 GUI. As a result, it is very easy to enumerate the windows within the interface and send a bunch of messages through SendMessage and similar methods.
This approach works very well, as long as you only have to do interactions within one parent window, and starts to break down when the application begins to start using the common dialog box library. Since these create new windows, you need to have a consistent way to hook into the window creation, or just guess, neither of which are easy or acceptable. After a bit of thinking, it came to me that you don't even have to let the window pop up. If you can overwrite the call to (in my case) GetOpenFileNameW, you can elide window creation and just directly write the results to the output buffer.
Writing Native Node.js In Windows
As of Node.js 0.7.0-alpha, there is no blessed path for writing native Node.js extensions on windows. However, it is not impossible to build fully compatible native node modules using Visual Studio. Doing so properly, however, requires a bit of finnesse.

Blog Posts