Converting Types to Unmanaged
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 ...
Get Visual Basic 2015 Unleashed 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.