Smart Device Functions:
Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than misc, prefix the name with the module name and a period.
What is PInvoke.net?
A wiki for developers
PInvoke.net is primarily a wiki, allowing developers to find, edit and add PInvoke* signatures, user-defined types, and any other information related to calling Win32 and other unmanaged APIs from managed code (written in languages such as C#).
.NET developers worldwide can easily contribute to the community, sharing their valuable knowledge, whenever they have time to do so.
New to Wikis? Try the Playground to experiment with the editing process
Copy and paste your way to productivity
Certain things just can't be done natively in some languages, and developers have to drill down to the OS API. This is achieved through .NET’s Platform Invoke (PInvoke) functionality, which requires declarations to be supplied by the developer. Manually defining and using PInvoke signatures is an error-prone process that can introduce subtle bugs. PInvoke.net supplies you with tried and tested signatures and type definitions, so that you don't have to spend time writing them from scratch.
Access PInvoke.net directly from Visual Studio
We provide an Add-in to Visual Studio 2019 - 2022, to make the insertion of PInvoke signatures an easy, fast operation. Download the PInvoke.net Add-in for FREE now.
Did you spend hours figuring out how to successfully define and 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!
We are constantly looking for editors to join in, to continue making this space a valuable resource for .NET developers across the globe.
* The term PInvoke is derived from the phrase "Platform Invoke". PInvoke signatures are native method signatures