Skip to Main Content
C# in a Nutshell, Second Edition
book

C# in a Nutshell, Second Edition

by Peter Drayton, Ben Albahari, Ted Neward
August 2003
Intermediate to advanced content levelIntermediate to advanced
928 pages
32h 1m
English
O'Reilly Media, Inc.
Content preview from C# in a Nutshell, Second Edition

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(int elemCount);
   public static UnmanagedMarshal DefineByValTStr(int elemCount);
   public static UnmanagedMarshal DefineLPArray(System.Runtime.InteropServices.UnmanagedType ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C# in a Nutshell

C# in a Nutshell

Ben Albahari, Ted Neward, Peter Drayton
C# 7.0 in a Nutshell

C# 7.0 in a Nutshell

Joseph Albahari, Ben Albahari
C# Cookbook, 2nd Edition

C# Cookbook, 2nd Edition

Jay Hilyard, Stephen Teilhet
C# Cookbook

C# Cookbook

Joe Mayo

Publisher Resources

ISBN: 0596005261Catalog PageErrata