July 2015
Intermediate to advanced
1300 pages
87h 27m
English
When you work with P/Invokes, you might need to pass custom types as function arguments. If such types are .NET types, the most important thing is converting primitives into types that are acceptable by the COM/Win32 architecture. The System.Runtime.InteropServices namespace exposes the MarshalAs attribute that can be applied to fields and method arguments to convert the object into the most appropriate COM counterpart. The following sample implementation of the Person class demonstrates how to apply MarshalAs:
Imports System.Runtime.InteropServicesPublic Class Person <MarshalAs(UnmanagedType.LPStr)> Private _firstName As String <MarshalAs(UnmanagedType.SysInt)> Private _age ...