Name
UnmanagedMarshal
Synopsis
This class defines how parameters
or fields should be
marshaled in function calls to unmanaged code. By default, the CLR
applies certain format conversions automatically during this
marshaling (for example, it might change a
System.String
object to an unmanaged BSTR). Use
this class to override this default behavior.
To create an instance of this class, use one of the static methods to
define the unmanaged type you want. Typically, you will use
DefineUnmanagedMarshal( )
for this purpose and
specify the unmanaged type using the
System.Runtime.InteropServices.UnmanagedType
enumeration. Alternatively, use DefineByValTStr( )
to specify marshaling to a string in a fixed array buffer, and
specify the other methods for various types of unmanaged arrays.
These static methods all return an
UnmanagedMarshal
object, with its read-only
properties set accordingly. Lastly, associate the
UnmanagedMarshal
with the appropriate type using
the SetMarshal( )
method for the
ParameterBuilder
,
MethodBuilder
, or FieldBuilder
class.
public sealed class UnmanagedMarshal { // Public Instance Properties public UnmanagedType BaseType{get; } public int ElementCount{get; } public UnmanagedType GetUnmanagedType{get; } public Guid IIDGuid{get; } // Public Static Methods public static UnmanagedMarshal DefineByValArray(intelemCount
); public static UnmanagedMarshal DefineByValTStr(intelemCount
); public static UnmanagedMarshal DefineLPArray(System.Runtime.InteropServices.UnmanagedType ...
Get C# in a Nutshell, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.