UnmanagedMarshal

UnmanagedMarshal serializable

System.Reflection.Emit (mscorlib.dll) sealed class

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  (int   elemCount   );    public static UnmanagedMarshal  DefineByValTStr  (int   elemCount   );    public static UnmanagedMarshal  DefineLPArray  (System.Runtime.InteropServices.UnmanagedType   elemType   );    public static UnmanagedMarshal  DefineSafeArray  (System.Runtime.InteropServices.UnmanagedType   elemType   );    public static UnmanagedMarshal  DefineUnmanagedMarshal  System.Runtime.InteropServices.UnmanagedType   unmanagedType   ); } 

Passed To

FieldBuilder.SetMarshal( ) , MethodBuilder.SetMarshal( ) , ParameterBuilder.SetMarshal( )



C# in a Nutshell
C # in a Nutshell, Second Edition
ISBN: 0596005261
EAN: 2147483647
Year: 2005
Pages: 963

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net