Marshal.GetFunctionPointerForDelegate Marshal.GetFunctionPointerForDelegate Marshal.GetFunctionPointerForDelegate Marshal.GetFunctionPointerForDelegate Method

Definition

Overloads

GetFunctionPointerForDelegate(Delegate) GetFunctionPointerForDelegate(Delegate) GetFunctionPointerForDelegate(Delegate) GetFunctionPointerForDelegate(Delegate)

Converts a delegate into a function pointer that is callable from unmanaged code.

GetFunctionPointerForDelegate<TDelegate>(TDelegate) GetFunctionPointerForDelegate<TDelegate>(TDelegate) GetFunctionPointerForDelegate<TDelegate>(TDelegate) GetFunctionPointerForDelegate<TDelegate>(TDelegate)

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

Converts a delegate of a specified type to a function pointer that is callable from unmanaged code.

GetFunctionPointerForDelegate(Delegate) GetFunctionPointerForDelegate(Delegate) GetFunctionPointerForDelegate(Delegate) GetFunctionPointerForDelegate(Delegate)

Warning

This API is now obsolete.

Converts a delegate into a function pointer that is callable from unmanaged code.

public:
 static IntPtr GetFunctionPointerForDelegate(Delegate ^ d);
[System.Obsolete("GetFunctionPointerForDelegate(Delegate) may be unavailable in future releases. Instead, use GetFunctionPointerForDelegate<T>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296522")]
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate (Delegate d);
static member GetFunctionPointerForDelegate : Delegate -> nativeint
Public Shared Function GetFunctionPointerForDelegate (d As Delegate) As IntPtr
Parameters
d
Delegate Delegate Delegate Delegate

The delegate to be passed to unmanaged code.

Returns

A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.

Exceptions

The d parameter is a generic type definition.

Remarks

The delegate d is converted to a function pointer that can be passed to unmanaged code using the __stdcall calling convention.

You must manually keep the delegate from being collected by the garbage collector from managed code. The garbage collector does not track references to unmanaged code.

Security

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

GetFunctionPointerForDelegate<TDelegate>(TDelegate) GetFunctionPointerForDelegate<TDelegate>(TDelegate) GetFunctionPointerForDelegate<TDelegate>(TDelegate) GetFunctionPointerForDelegate<TDelegate>(TDelegate)

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

Converts a delegate of a specified type to a function pointer that is callable from unmanaged code.

public:
generic <typename TDelegate>
 static IntPtr GetFunctionPointerForDelegate(TDelegate d);
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate<TDelegate> (TDelegate d);
static member GetFunctionPointerForDelegate : 'Delegate -> nativeint
Public Shared Function GetFunctionPointerForDelegate(Of TDelegate) (d As TDelegate) As IntPtr
Type Parameters
TDelegate

The type of delegate to convert.

Parameters
d

The delegate to be passed to unmanaged code.

Returns

A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.

Exceptions

The d parameter is a generic type definition.

Remarks

The delegate d is converted to a function pointer that can be passed to unmanaged code by using the __stdcall calling convention.

You must manually keep the delegate from being collected by the garbage collector from managed code. The garbage collector does not track references to unmanaged code.

Security

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

Applies to