'Introducing' PINVOKE.NET and its Visual Studio Add-In!

I guess I'm not cut out to be a journalist.

Two weeks ago when I decided to spend my weekend creating the PINVOKE.NET wiki, I had a great opportunity to awaken my blog from its deep slumber by announcing it to the world. But Ben, Brad, Brian, Charlie, Chris, Corrado, Darth, Duncan, Ivan, James, Jesse, Jim, Joe, Josh, Julia, Ken, Peter, Phil, Sam, Sean, Shawn, Ted, Yorai, and numerous other people beat me to it!

This past weekend I put the finishing touches on a Visual Studio add-in that communicates with PINVOKE.NET via a Web service and uploaded it to gotdotnet.com. As I waited for it to appear, I knew that this was my second chance to have an exclusive scoop on my blog. Lo and behold, Kevin, Kent, Josh, Girish, and Paul let the cat out of the bag before I did!

Don't get me wrong… I'm flattered that so many people find this stuff blog-worthy! Ever since preparing for PDC 2003 last September, I wanted to create such a site in order to help people with the PInvoke problem. That's when I reserved the pinvoke.net domain name. But it wasn't until an e-mail discussion on Thursday 4/15 about the difficulty of PInvoke that I put my foot down and was determined to get the site up and running by that Monday morning (4/19)! That's also when it dawned on me that the wiki approach was the way to make this happen fast. I'm grateful that I stumbled across the great work the FlexWiki folks have done.

So thank you for all of your great comments on the site, in e-mail, and in your blogs. It gives me hope that the site is starting to achieve its objective. And thank you especially for your contributions to the wiki! As a community we've expanded the site from 6 to 25 DLLs, with approximately 1,700 signatures & types, including hundreds of pages with sample code, alternative managed APIs, VB signatures, and other helpful information. All this in just two and a half weeks! I want to highlight Craig Ellis in particular, who contributed 54 functions and 8 structures all in one sitting!

Therefore, I'm not going to introduce the site. If you're somehow reading my blog but aren't familiar with it, please visit http://www.pinvoke.net for more information. And don't worry, support for more browsers is still on my TODO list. (Working on the site is reserved for my sparest of spare time!)

I do want to give a quick overview of what the Visual Studio add-in does, however. After installing it from here, you'll get two new menu items when right-clicking in source code:

The Insert PInvoke Signatures… option opens a dialog, shown here with the results for the MessageBeep API:

Once you type in a function name and press Enter, you can get a description, PInvoke signature(s), and an alternative managed API from the PINVOKE.NET web service. If you want more information (such as sample code or structure definitions), you can click on the link at the bottom.

But 'tis better to give than to receive, right? If you want an easy way to contribute to the PINVOKE.NET project, highlight some code and select the Contribute PInvoke Signatures and Types… option:

You'll get the following dialog, which enables you to upload your content:

Let me know if you have any questions/comments, and enjoy!