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
52
53
54
55
56
57
58
59
60
61
62
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace Internal.TypeSystem.Interop
{
internal enum MarshallerKind
{
Unknown,
BlittableValue,
Array,
BlittableArray,
Bool, // 4 byte bool
CBool, // 1 byte bool
VariantBool, // Variant bool
Enum,
AnsiChar, // Marshal char (Unicode 16bits) for byte (Ansi 8bits)
UnicodeChar,
AnsiCharArray,
ByValArray,
ByValAnsiCharArray, // Particular case of ByValArray because the conversion between wide Char and Byte need special treatment.
AnsiString,
UnicodeString,
UTF8String,
AnsiBSTRString,
BSTRString,
ByValAnsiString,
ByValUnicodeString,
AnsiStringBuilder,
UnicodeStringBuilder,
FunctionPointer,
SafeHandle,
CriticalHandle,
HandleRef,
VoidReturn,
Variant,
Object,
OleDateTime,
Decimal,
OleCurrency,
Guid,
Struct,
BlittableStruct,
BlittableStructPtr, // Additional indirection on top of blittable struct. Used by MarshalAs(LpStruct)
LayoutClass,
LayoutClassPtr,
AsAnyA,
AsAnyW,
FailedTypeLoad,
ComInterface,
BlittableValueClassByRefReturn,
BlittableValueClassWithCopyCtor,
CustomMarshaler,
Invalid
}
public enum MarshallerType
{
Argument,
Element,
Field
}
}
|