Adam Nathan has created a home for a ton of PInvoke signatures, organized by Module/DLL and pre-populated (by the man himself) with a ton of the most common signatures… I’ll let the site describe itself with this text from the “What is this site?” page;

[PINVOKE.NET]( attempts to address the difficulty of calling Win32 or other unmanaged APIs in managed code (languages such as C# and VB .NET). Manually defining and using PInvoke signatures (also known as Declare statements in VB .NET) is an error-prone process that can introduce extremely subtle bugs. The rules are complex, and if you make a mistake, you’ll probably corrupt memory.

Therefore, this site is a repository where you can [find](, [edit](, and [add]( PInvoke signatures, user-defined types, and any other information that helps us leverage each other’s efforts. Think of this as the 21st century version of VB6’s "API Text Viewer," a standalone application which used static files such as WIN32API.TXT as input. Did you spend hours figuring out how to successfully define & call a given unmanaged API in managed code? Share (and get credit for) your discovery here! Is there an error on this site? Go ahead and fix it!

It’s time to stop writing PInvoke signatures from scratch! Instead, copy and paste your way to productivity!

Besides the structured reference pages, this site contains miscellaneous community resources that are helpful for being successful at unmanaged code interoperability. Feel free to add to these pages, too!

PINVOKE.NET is a [Wiki]( (created with [FlexWiki](, enabling users like you (yes, you) to freely and easily contribute to the repository. New to Wikis? Try the "Playground" link on the left to experiment with the editing process. Enjoy!

For those of you who are primarily VB.NET developers (like myself), I fear you will find the VB content a bit light on this site… but this is bound to change over time since, as was mentioned earlier, this is a Wiki and I’m sure people will be adding VB.NET signatures…