PInvoke Interop Assistant now on CodePlex

I’m happy to announce that the PInvoke Interop Assistant tool is now available on CodePlex.  This includes the binaries, source code and the dev authored unit tests. 

It is hosted on the more general CLR Interop Tools page.

I will be actively maintaining this tool in the future and (hopefully) adding more features.  There were several features we cut just before release due to QA costing that I would like to add back (including VS integration, wrapper functions).  

Please post any suggestions you have for the tool on the site and we will definitely consider them.

Comments (4)

  1. int19h says:

    "An XML database file containing Windows API signature data (referenced from VS2005 SDK)"

    This is great, but I’ve always wondered why Microsoft didn’t make a set of standard public static classes with P/Invoke declarations for all of Windows API and distributed it with .NET Framework. As it is, every second project out there has its own "internal static class Win32" or something like that, and all they contain the same API declarations. Why not centralize?

  2. Greg Duncan says:

    You rock!

    Thank you for writing this and then taking that scary next step and posting the source…

    Thanks again,


  3. @int19h

    I have no direct/indirect knowledeg of why their is not a centralized PInovke library (or if was ever considered).  

    When I first started with .Net though I wondered much the same.  This project and past projcts did teach me there is no one best way to PInvoke a method.  For many methods there are a variety of correct signatures which have different performance and usability trade offs.  

    A centralized library would need to take in all of the possible different ways to call a single method and make the appropriate design trade offs.  Not cheap.  Perhaps the scope of the API that would need to be created detered teams from producing this type of library.  

  4. @Greg

    Glad to know you enjoyed it.  For me releasing the product is much scarier than releasing the source.