Marshal.GetObjectForNativeVariant<T> Method (IntPtr)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

[Supported in the .NET Framework 4.5.1 and later versions]

Converts a COM VARIANT to an object of a specified type.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

public static T GetObjectForNativeVariant<T>(
	IntPtr pSrcNativeVariant


Type: System.IntPtr

A pointer to a COM VARIANT.

Return Value

Type: T

An object of the specified type that corresponds to the pSrcNativeVariant parameter.

Type Parameters


The type to which to convert the COM VARIANT.

Exception Condition

pSrcNativeVariant is not a valid VARIANT type.


pSrcNativeVariant has an unsupported type.

GetObjectForNativeVariant<T>(IntPtr) returns a managed object of type T that corresponds to a raw pointer to an unmanaged VARIANT type. The interopmarshaler performs the identical transformation when exposing a VARIANT type to managed code.

GetObjectForNativeVariant<T>(IntPtr) provides the opposite functionality ofGetNativeVariantForObject<T>(T, IntPtr).


requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Universal Windows Platform
Available since 8.1
.NET Framework
Available since 4.5.1
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1
Return to top