GCHandle::Alloc Method (Object^)
Allocates a Normal handle for the specified object.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
-
Type:
System::Object^
The object that uses the GCHandle.
Return Value
Type: System.Runtime.InteropServices::GCHandleA new GCHandle that protects the object from garbage collection. This GCHandle must be released with Free when it is no longer needed.
| Exception | Condition |
|---|---|
| ArgumentException | An instance with nonprimitive (non-blittable) members cannot be pinned. |
Normal handles are opaque, which means that you cannot resolve the address of the object it contains through the handle.
The following example shows an App class that creates a handle to a managed object using the GCHandle.Alloc method, which prevents the managed object from being collected. A call to the EnumWindows method passes a delegate and a managed object (both declared as managed types, but not shown), and casts the handle to an IntPtr. The unmanaged function passes the type back to the caller as a parameter of the callback function.
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1