What are handles for? IntPtr

MintGrowth picture MintGrowth · Apr 14, 2011 · Viewed 7.5k times · Source

I have been reading up on IntPtr and have read that it is used to represent a Handle(s). What does this mean exactly? I'm sure it is a simple explanation, but the light bulb is just not turning on at the moment..

Answer

Reed Copsey picture Reed Copsey · Apr 14, 2011

This is typically referring to an operating system Handle, and used internally. For example, Windows Forms uses an IntPtr to refer to the Control's native Window Handle (HWND).

Handles in the Windows API are used for many things - most operating system related resources (files, sockets, windows, etc) are all exposed through a handle, which is effectively a pointer. In managed code, this gets stored in an IntPtr.

That being said, IntPtr is also regularly used to store pointers in interop scenarios, as well, as it automatically resizes based on 32bit or 64bit code.