SystemIntPtr
System.IntPtr is a value type in the .NET framework that represents a platform-specific pointer or handle. It is used in managed code to hold addresses returned by unmanaged code, to pass pointers to native functions via P/Invoke, or to represent native handles in interop scenarios. The size of an IntPtr matches the pointer size of the executing process: 4 bytes on 32-bit systems and 8 bytes on 64-bit systems, accessible via IntPtr.Size.
As a struct, IntPtr is immutable and copied by value. It provides a static field Zero to
Common usage patterns include storing handles returned by unmanaged APIs, such as device, window, or module
See also: pointer types, unsafe code, P/Invoke, SafeHandle, Marshal class.