CorPinvokeMap Enumeration
Specifies options for a PInvoke call.
Syntax
typedef enum CorPinvokeMap {
pmNoMangle = 0x0001,
pmCharSetMask = 0x0006,
pmCharSetNotSpec = 0x0000,
pmCharSetAnsi = 0x0002,
pmCharSetUnicode = 0x0004,
pmCharSetAuto = 0x0006,
pmBestFitUseAssem = 0x0000,
pmBestFitEnabled = 0x0010,
pmBestFitDisabled = 0x0020,
pmBestFitMask = 0x0030,
pmThrowOnUnmappableCharUseAssem = 0x0000,
pmThrowOnUnmappableCharEnabled = 0x1000,
pmThrowOnUnmappableCharDisabled = 0x2000,
pmThrowOnUnmappableCharMask = 0x3000,
pmSupportsLastError = 0x0040,
pmCallConvMask = 0x0700,
pmCallConvWinapi = 0x0100,
pmCallConvCdecl = 0x0200,
pmCallConvStdcall = 0x0300,
pmCallConvThiscall = 0x0400,
pmCallConvFastcall = 0x0500,
pmMaxValue = 0xFFFF
} CorPinvokeMap;
Members
Member | Description |
---|---|
pmNoMangle |
Use each member name as specified. |
pmCharSetMask |
Reserved. |
pmCharSetNotSpec |
Reserved. |
pmCharSetAnsi |
Marshal strings as multiple-byte character strings. |
pmCharSetUnicode |
Marshal strings as Unicode 2-byte characters. |
pmCharSetAuto |
Automatically marshal strings appropriately for the target operating system. The default is Unicode on Windows. |
pmBestFitUseAssem |
Reserved. |
pmBestFitEnabled |
Perform best-fit mapping of Unicode characters that lack an exact match in the ANSI character set. |
pmBestFitDisabled |
Do not perform best-fit mapping of Unicode characters. In this case, all unmappable characters will be replaced by a ‘?’. |
pmBestFitMask |
Reserved. |
pmThrowOnUnmappableCharUseAssem |
Reserved. |
pmThrowOnUnmappableCharEnabled |
Throw an exception when the interop marshaller encounters an unmappable character. |
pmThrowOnUnmappableCharDisabled |
Do not throw an exception when the interop marshaller encounters an unmappable character. |
pmThrowOnUnmappableCharMask |
Reserved |
pmSupportsLastError |
Allow the callee to call the Win32 SetLastError function before returning from the attributed method. |
pmCallConvMask |
Reserved |
pmCallConvWinapi |
Use the default platform calling convention. For example, on Windows the default is StdCall and on Windows CE .NET it is Cdecl . |
pmCallConvCdecl |
Use the Cdecl calling convention. In this case, the caller cleans the stack. This enables calling functions with varargs (that is, functions that accept a variable number of parameters). |
pmCallConvStdcall |
Use the StdCall calling convention. In this case, the callee cleans the stack. This is the default convention for calling unmanaged functions with platform invoke. |
pmCallConvThiscall |
Use the ThisCall calling convention. In this case, the first parameter is the this pointer and is stored in register ECX. Other parameters are pushed on the stack. The ThisCall calling convention is used to call methods on classes exported from an unmanaged DLL. |
pmCallConvFastcall |
Reserved. |
pmMaxValue |
Reserved. |
Requirements
Platforms: See System Requirements.
Header: CorHdr.h
.NET Framework Versions: Available since 1.0
See also
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.