Unmanaged to Managed Type Translation Table

Unmanaged to Managed type translation table:

C/C++

C#

HANDLE, LPDWORD, LPVOID, void*
IntPtr
LPCTSTR, LPCTSTR, LPSTR, char*
String [in], StringBuilder [in, out]
const char*, Wchar_t*, LPWSTR
String [in], StringBuilder [in, out]
DWORD, unsigned long, Ulong
UInt32, [MarshalAs(UnmanagedType.U4)]
bool
bool
LP<struct>
[In] ref <struct>
SIZE_T
uint
LPDWORD
out uint
LPTSTR
[Out] StringBuilder
PULARGE_INTEGER
out ulong
WORD
uInt16
Byte, unsigned char
byte
Short
Int16
Long, int
Int32
float
single
double
double
NULL pointer
IntPtr.Zero
Uint
Uint32