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 shared 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 shared 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 NotInheritable Class UnmanagedMarshal
                  ' Public Instance Properties
   Public ReadOnly Property BaseType As UnmanagedType  
   Public ReadOnly Property ElementCount As Integer  
   Public ReadOnly Property GetUnmanagedType As UnmanagedType  
   Public ReadOnly Property IIDGuid As Guid  
' Public Shared Methods
   Public Shared Function DefineByValArray(
        ByVal elemCount As Integer) As UnmanagedMarshal  
   Public Shared Function DefineByValTStr( ByVal elemCount As Integer) ...

Get VB.NET Core Classes in a Nutshell 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.