File: pinvokemap.cs

package info (click to toggle)
mono 6.8.0.105%2Bdfsg-3.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,284,512 kB
  • sloc: cs: 11,172,132; xml: 2,850,069; ansic: 671,653; cpp: 122,091; perl: 59,366; javascript: 30,841; asm: 22,168; makefile: 20,093; sh: 15,020; python: 4,827; pascal: 925; sql: 859; sed: 16; php: 1
file content (51 lines) | stat: -rw-r--r-- 2,027 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// ==++==
// 
//   Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// ==--==
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// PInvokeMap is an enum that defines the PInvoke attributes.  These
//  values are defined in CorHdr.h.
//
// <EMAIL>Author: meichint</EMAIL>
// Date: Sep 99
//
namespace System.Runtime.InteropServices {
    using System.Runtime.InteropServices;
    using System;
    
    // This Enum matchs the CorPinvokeMap defined in CorHdr.h
    [Serializable]
    internal enum PInvokeMap
    {
        NoMangle            = 0x0001,   // Pinvoke is to use the member name as specified.
        CharSetMask         = 0x0006,   // Heuristic used in data type & name mapping.
        CharSetNotSpec      = 0x0000,
        CharSetAnsi         = 0x0002, 
        CharSetUnicode      = 0x0004,
        CharSetAuto         = 0x0006,
    
        PinvokeOLE          = 0x0020,   // Heuristic: pinvoke will return hresult, with return value becoming the retval param. Not relevant for fields. 
        SupportsLastError   = 0x0040,   // Information about target function. Not relevant for fields.

        BestFitMask         = 0x0030,
        BestFitEnabled      = 0x0010,
        BestFitDisabled     = 0x0020,
        BestFitUseAsm       = 0x0030,
    
        ThrowOnUnmappableCharMask       = 0x3000,
        ThrowOnUnmappableCharEnabled    = 0x1000,
        ThrowOnUnmappableCharDisabled   = 0x2000,
        ThrowOnUnmappableCharUseAsm     = 0x3000,
    
        // None of the calling convention flags is relevant for fields.
        CallConvMask        = 0x0700,
        CallConvWinapi      = 0x0100,   // Pinvoke will use native callconv appropriate to target windows platform.
        CallConvCdecl       = 0x0200,
        CallConvStdcall     = 0x0300,
        CallConvThiscall    = 0x0400,   // In M9, pinvoke will raise exception.
        CallConvFastcall    = 0x0500,
    }
}