source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/corhdr.h@ 1175

Last change on this file since 1175 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 50.4 KB
RevLine 
[1166]1/**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5#ifndef __CORHDR_H__
6#define __CORHDR_H__
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12typedef enum CorTypeAttr {
13 tdVisibilityMask = 0x7,
14 tdNotPublic = 0x0,
15 tdPublic = 0x1,
16 tdNestedPublic = 0x2,
17 tdNestedPrivate = 0x3,
18 tdNestedFamily = 0x4,
19 tdNestedAssembly = 0x5,
20 tdNestedFamANDAssem = 0x6,
21 tdNestedFamORAssem = 0x7,
22 tdLayoutMask = 0x18,
23 tdAutoLayout = 0x0,
24 tdSequentialLayout = 0x8,
25 tdExplicitLayout = 0x10,
26 tdClassSemanticsMask = 0x20,
27 tdClass = 0x0,
28 tdInterface = 0x20,
29 tdAbstract = 0x80,
30 tdSealed = 0x100,
31 tdSpecialName = 0x400,
32 tdImport = 0x1000,
33 tdSerializable = 0x2000,
34 tdWindowsRuntime = 0x4000,
35 tdStringFormatMask = 0x30000,
36 tdAnsiClass = 0x0,
37 tdUnicodeClass = 0x10000,
38 tdAutoClass = 0x20000,
39 tdCustomFormatClass = 0x30000,
40 tdCustomFormatMask = 0xc00000,
41 tdBeforeFieldInit = 0x100000,
42 tdForwarder = 0x200000,
43 tdReservedMask = 0x40800,
44 tdRTSpecialName = 0x800,
45 tdHasSecurity = 0x40000,
46} CorTypeAttr;
47
48typedef enum CorMethodAttr {
49 mdMemberAccessMask = 0x0007,
50 mdPrivateScope = 0x0,
51 mdPrivate = 0x1,
52 mdFamANDAssem = 0x2,
53 mdAssem = 0x3,
54 mdFamily = 0x4,
55 mdFamORAssem = 0x5,
56 mdPublic = 0x6,
57 mdUnmanagedExport = 0x8,
58 mdStatic = 0x10,
59 mdFinal = 0x20,
60 mdVirtual = 0x40,
61 mdHideBySig = 0x80,
62 mdVtableLayoutMask = 0x100,
63 mdReuseSlot = 0x0,
64 mdNewSlot = 0x100,
65 mdCheckAccessOnOverride = 0x200,
66 mdAbstract = 0x400,
67 mdSpecialName = 0x800,
68 mdPinvokeImpl = 0x2000,
69 mdReservedMask = 0xd000,
70 mdRTSpecialName = 0x1000,
71 mdHasSecurity = 0x4000,
72 mdRequireSecObject = 0x8000
73} CorMethodAttr;
74
75#ifndef __IMAGE_COR20_HEADER_DEFINED__
76#define __IMAGE_COR20_HEADER_DEFINED__
77typedef enum ReplacesCorHdrNumericDefines {
78 COMIMAGE_FLAGS_ILONLY = 0x1,
79 COMIMAGE_FLAGS_32BITREQUIRED = 0x2,
80 COMIMAGE_FLAGS_IL_LIBRARY = 0x4,
81 COMIMAGE_FLAGS_STRONGNAMESIGNED = 0x8,
82 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT = 0x10,
83 COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x10000,
84 COMIMAGE_FLAGS_32BITPREFERRED = 0x20000,
85 COR_VERSION_MAJOR_V2 = 2,
86 COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2,
87 COR_VERSION_MINOR = 5,
88 COR_DELETED_NAME_LENGTH = 8,
89 COR_VTABLEGAP_NAME_LENGTH = 8,
90 NATIVE_TYPE_MAX_CB = 1,
91 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 0xff,
92 COR_VTABLE_32BIT = 0x1,
93 COR_VTABLE_64BIT = 0x2,
94 COR_VTABLE_FROM_UNMANAGED = 0x4,
95 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN = 0x8,
96 COR_VTABLE_CALL_MOST_DERIVED = 0x10,
97 MAX_CLASS_NAME = 1024,
98 MAX_PACKAGE_NAME = 1024
99} ReplacesCorHdrNumericDefines;
100
101typedef struct IMAGE_COR20_HEADER {
102 DWORD cb;
103 WORD MajorRuntimeVersion;
104 WORD MinorRuntimeVersion;
105 IMAGE_DATA_DIRECTORY MetaData;
106 DWORD Flags;
107 __C89_NAMELESS union {
108 DWORD EntryPointToken;
109 DWORD EntryPointRVA;
110 };
111 IMAGE_DATA_DIRECTORY Resources;
112 IMAGE_DATA_DIRECTORY StrongNameSignature;
113 IMAGE_DATA_DIRECTORY CodeManagerTable;
114 IMAGE_DATA_DIRECTORY VTableFixups;
115 IMAGE_DATA_DIRECTORY ExportAddressTableJumps;
116 IMAGE_DATA_DIRECTORY ManagedNativeHeader;
117} IMAGE_COR20_HEADER,*PIMAGE_COR20_HEADER;
118#else
119#define COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN 0x8
120#define COMIMAGE_FLAGS_32BITPREFERRED 0x20000
121#endif
122
123typedef enum CorFieldAttr {
124 fdFieldAccessMask = 0x0007,
125 fdPrivateScope = 0x0000,
126 fdPrivate = 0x0001,
127 fdFamANDAssem = 0x0002,
128 fdAssembly = 0x0003,
129 fdFamily = 0x0004,
130 fdFamORAssem = 0x0005,
131 fdPublic = 0x0006,
132
133 fdStatic = 0x0010,
134 fdInitOnly = 0x0020,
135 fdLiteral = 0x0040,
136 fdNotSerialized = 0x0080,
137 fdHasFieldRVA = 0x0100,
138 fdSpecialName = 0x0200,
139 fdRTSpecialName = 0x0400,
140 fdHasFieldMarshal = 0x1000,
141 fdPinvokeImpl = 0x2000,
142 fdHasDefault = 0x8000,
143 fdReservedMask = 0x9500
144} CorFieldAttr;
145
146typedef enum CorParamAttr {
147 pdIn = 0x1,
148 pdOut = 0x2,
149 pdOptional = 0x10,
150 pdReservedMask = 0xf000,
151 pdHasDefault = 0x1000,
152 pdHasFieldMarshal = 0x2000,
153 pdUnused = 0xcfe0
154} CorParamAttr;
155
156typedef enum CorPropertyAttr {
157 prReservedMask = 0xf400,
158 prSpecialName = 0x0200,
159 prRTSpecialName = 0x0400,
160 prHasDefault = 0x1000,
161 prUnused = 0xe9ff
162} CorPropertyAttr;
163
164typedef enum CorEventAttr {
165 evSpecialName = 0x0200,
166 evReservedMask = 0x0400,
167 evRTSpecialName = 0x0400,
168} CorEventAttr;
169
170typedef enum CorMethodSemanticsAttr {
171 msSetter = 0x1,
172 msGetter = 0x2,
173 msOther = 0x4,
174 msAddOn = 0x8,
175 msRemoveOn = 0x10,
176 msFire = 0x20
177} CorMethodSemanticsAttr;
178
179typedef enum CorDeclSecurity {
180 dclActionMask = 0x001f,
181 dclActionNil = 0x0000,
182 dclRequest = 0x0001,
183 dclDemand = 0x0002,
184 dclAssert = 0x0003,
185 dclDeny = 0x0004,
186 dclPermitOnly = 0x0005,
187 dclLinktimeCheck = 0x0006,
188 dclInheritanceCheck = 0x0007,
189 dclRequestMinimum = 0x0008,
190 dclRequestOptional = 0x0009,
191 dclRequestRefuse = 0x000a,
192 dclPrejitGrant = 0x000b,
193 dclPrejitDenied = 0x000c,
194 dclNonCasDemand = 0x000d,
195 dclNonCasLinkDemand = 0x000e,
196 dclNonCasInheritance = 0x000f,
197 dclMaximumValue = 0x000f
198} CorDeclSecurity;
199
200typedef enum CorMethodImpl {
201 miCodeTypeMask = 0x0003,
202 miIL = 0x0000,
203 miNative = 0x0001,
204 miOPTIL = 0x0002,
205 miRuntime = 0x0003,
206 miManagedMask = 0x0004,
207 miUnmanaged = 0x0004,
208 miManaged = 0x0,
209 miNoInlining = 0x0008,
210 miForwardRef = 0x0010,
211 miSynchronized = 0x0020,
212 miNoOptimization = 0x0040,
213 miPreserveSig = 0x0080,
214 miAggressiveInlining = 0x0100,
215 miInternalCall = 0x1000,
216 miUserMask = miManagedMask | miForwardRef | miPreserveSig | miInternalCall | miSynchronized | miNoInlining | miAggressiveInlining | miNoOptimization,
217 miMaxMethodImplVal = 0xffff
218} CorMethodImpl;
219
220typedef enum CorPinvokeMap {
221 pmNoMangle = 0x0001,
222 pmCharSetMask = 0x0006,
223 pmCharSetNotSpec = 0x0,
224 pmCharSetAnsi = 0x0002,
225 pmCharSetUnicode = 0x0004,
226 pmCharSetAuto = 0x0006,
227 pmBestFitMask = 0x0030,
228 pmBestFitUseAssem = 0x0,
229 pmBestFitEnabled = 0x0010,
230 pmBestFitDisabled = 0x0020,
231 pmSupportsLastError = 0x0040,
232 pmCallConvMask = 0x0700,
233 pmCallConvWinapi = 0x0100,
234 pmCallConvCdecl = 0x0200,
235 pmCallConvStdcall = 0x0300,
236 pmCallConvThiscall = 0x0400,
237 pmCallConvFastcall = 0x0500,
238 pmThrowOnUnmappableCharMask = 0x3000,
239 pmThrowOnUnmappableCharUseAssem = 0x0,
240 pmThrowOnUnmappableCharEnabled = 0x1000,
241 pmThrowOnUnmappableCharDisabled = 0x2000,
242 pmMaxValue = 0xffff
243} CorPinvokeMap;
244
245typedef enum CorAssemblyFlags {
246 afPublicKey = 0x0001,
247 afPA_Mask = 0x0070,
248 afPA_FullMask = 0x00f0,
249 afPA_None = 0x0,
250 afPA_MSIL = 0x0010,
251 afPA_x86 = 0x0020,
252 afPA_IA64 = 0x0030,
253 afPA_AMD64 = 0x0040,
254 afPA_ARM = 0x0050,
255 afPA_NoPlatform = 0x0070,
256 afPA_Specified = 0x0080,
257 afPA_Shift = 0x0004,
258 afRetargetable = 0x0100,
259 afContentType_Mask = 0x0e00,
260 afContentType_Default = 0x0,
261 afContentType_WindowsRuntime = 0x0200,
262 afEnableJITcompileTracking = 0x8000,
263 afDisableJITcompileOptimizer = 0x4000
264} CorAssemblyFlags;
265
266typedef enum CorManifestResourceFlags {
267 mrVisibilityMask = 0x0007,
268 mrPublic = 0x0001,
269 mrPrivate = 0x0002,
270} CorManifestResourceFlags;
271
272typedef enum CorFileFlags {
273 ffContainsMetaData = 0x0000,
274 ffContainsNoMetaData = 0x0001,
275} CorFileFlags;
276
277typedef enum CorPEKind {
278 peNot = 0x00000000,
279 peILonly = 0x00000001,
280 pe32BitRequired=0x00000002,
281 pe32Plus = 0x00000004,
282 pe32Unmanaged=0x00000008,
283 pe32BitPreferred=0x00000010
284} CorPEKind;
285
286typedef enum CorGenericParamAttr {
287 gpVarianceMask = 0x0003,
288 gpNonVariant = 0x0000,
289 gpCovariant = 0x0001,
290 gpContravariant = 0x0002,
291 gpSpecialConstraintMask = 0x001c,
292 gpNoSpecialConstraint = 0x0000,
293 gpReferenceTypeConstraint = 0x0004,
294 gpNotNullableValueTypeConstraint = 0x0008,
295 gpDefaultConstructorConstraint = 0x0010
296} CorGenericParamAttr;
297
298typedef enum CorElementType {
299 ELEMENT_TYPE_END = 0x00,
300 ELEMENT_TYPE_VOID = 0x01,
301 ELEMENT_TYPE_BOOLEAN = 0x02,
302 ELEMENT_TYPE_CHAR = 0x03,
303 ELEMENT_TYPE_I1 = 0x04,
304 ELEMENT_TYPE_U1 = 0x05,
305 ELEMENT_TYPE_I2 = 0x06,
306 ELEMENT_TYPE_U2 = 0x07,
307 ELEMENT_TYPE_I4 = 0x08,
308 ELEMENT_TYPE_U4 = 0x09,
309 ELEMENT_TYPE_I8 = 0x0a,
310 ELEMENT_TYPE_U8 = 0x0b,
311 ELEMENT_TYPE_R4 = 0x0c,
312 ELEMENT_TYPE_R8 = 0x0d,
313 ELEMENT_TYPE_STRING = 0x0e,
314 ELEMENT_TYPE_PTR = 0x0f,
315 ELEMENT_TYPE_BYREF = 0x10,
316 ELEMENT_TYPE_VALUETYPE = 0x11,
317 ELEMENT_TYPE_CLASS = 0x12,
318 ELEMENT_TYPE_VAR = 0x13,
319 ELEMENT_TYPE_ARRAY = 0x14,
320 ELEMENT_TYPE_GENERICINST = 0x15,
321 ELEMENT_TYPE_TYPEDBYREF = 0x16,
322 ELEMENT_TYPE_I = 0x18,
323 ELEMENT_TYPE_U = 0x19,
324 ELEMENT_TYPE_FNPTR = 0x1b,
325 ELEMENT_TYPE_OBJECT = 0x1c,
326 ELEMENT_TYPE_SZARRAY = 0x1d,
327 ELEMENT_TYPE_MVAR = 0x1e,
328 ELEMENT_TYPE_CMOD_REQD = 0x1f,
329 ELEMENT_TYPE_CMOD_OPT = 0x20,
330 ELEMENT_TYPE_INTERNAL = 0x21,
331 ELEMENT_TYPE_MAX = 0x22,
332 ELEMENT_TYPE_MODIFIER = 0x40,
333 ELEMENT_TYPE_SENTINEL = 0x01 | ELEMENT_TYPE_MODIFIER,
334 ELEMENT_TYPE_PINNED = 0x05 | ELEMENT_TYPE_MODIFIER,
335} CorElementType;
336
337typedef enum CorSerializationType {
338 SERIALIZATION_TYPE_UNDEFINED = 0,
339 SERIALIZATION_TYPE_BOOLEAN = ELEMENT_TYPE_BOOLEAN,
340 SERIALIZATION_TYPE_CHAR = ELEMENT_TYPE_CHAR,
341 SERIALIZATION_TYPE_I1 = ELEMENT_TYPE_I1,
342 SERIALIZATION_TYPE_U1 = ELEMENT_TYPE_U1,
343 SERIALIZATION_TYPE_I2 = ELEMENT_TYPE_I2,
344 SERIALIZATION_TYPE_U2 = ELEMENT_TYPE_U2,
345 SERIALIZATION_TYPE_I4 = ELEMENT_TYPE_I4,
346 SERIALIZATION_TYPE_U4 = ELEMENT_TYPE_U4,
347 SERIALIZATION_TYPE_I8 = ELEMENT_TYPE_I8,
348 SERIALIZATION_TYPE_U8 = ELEMENT_TYPE_U8,
349 SERIALIZATION_TYPE_R4 = ELEMENT_TYPE_R4,
350 SERIALIZATION_TYPE_R8 = ELEMENT_TYPE_R8,
351 SERIALIZATION_TYPE_STRING = ELEMENT_TYPE_STRING,
352 SERIALIZATION_TYPE_SZARRAY = ELEMENT_TYPE_SZARRAY,
353 SERIALIZATION_TYPE_TYPE = 0x50,
354 SERIALIZATION_TYPE_TAGGED_OBJECT= 0x51,
355 SERIALIZATION_TYPE_FIELD = 0x53,
356 SERIALIZATION_TYPE_PROPERTY = 0x54,
357 SERIALIZATION_TYPE_ENUM = 0x55
358} CorSerializationType;
359
360typedef enum CorCallingConvention {
361 IMAGE_CEE_CS_CALLCONV_DEFAULT = 0x0,
362 IMAGE_CEE_CS_CALLCONV_VARARG = 0x5,
363 IMAGE_CEE_CS_CALLCONV_FIELD = 0x6,
364 IMAGE_CEE_CS_CALLCONV_LOCAL_SIG = 0x7,
365 IMAGE_CEE_CS_CALLCONV_PROPERTY = 0x8,
366 IMAGE_CEE_CS_CALLCONV_UNMGD = 0x9,
367 IMAGE_CEE_CS_CALLCONV_GENERICINST = 0xa,
368 IMAGE_CEE_CS_CALLCONV_NATIVEVARARG = 0xb,
369 IMAGE_CEE_CS_CALLCONV_MAX = 0xc,
370 IMAGE_CEE_CS_CALLCONV_MASK = 0x0f,
371 IMAGE_CEE_CS_CALLCONV_HASTHIS = 0x20,
372 IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS = 0x40,
373 IMAGE_CEE_CS_CALLCONV_GENERIC = 0x10,
374} CorCallingConvention;
375
376typedef enum CorUnmanagedCallingConvention {
377 IMAGE_CEE_UNMANAGED_CALLCONV_C = 0x1,
378 IMAGE_CEE_UNMANAGED_CALLCONV_STDCALL = 0x2,
379 IMAGE_CEE_UNMANAGED_CALLCONV_THISCALL = 0x3,
380 IMAGE_CEE_UNMANAGED_CALLCONV_FASTCALL = 0x4,
381 IMAGE_CEE_CS_CALLCONV_C = IMAGE_CEE_UNMANAGED_CALLCONV_C,
382 IMAGE_CEE_CS_CALLCONV_STDCALL = IMAGE_CEE_UNMANAGED_CALLCONV_STDCALL,
383 IMAGE_CEE_CS_CALLCONV_THISCALL = IMAGE_CEE_UNMANAGED_CALLCONV_THISCALL,
384 IMAGE_CEE_CS_CALLCONV_FASTCALL = IMAGE_CEE_UNMANAGED_CALLCONV_FASTCALL,
385} CorUnmanagedCallingConvention;
386
387typedef enum CorArgType {
388 IMAGE_CEE_CS_END = 0x0,
389 IMAGE_CEE_CS_VOID = 0x1,
390 IMAGE_CEE_CS_I4 = 0x2,
391 IMAGE_CEE_CS_I8 = 0x3,
392 IMAGE_CEE_CS_R4 = 0x4,
393 IMAGE_CEE_CS_R8 = 0x5,
394 IMAGE_CEE_CS_PTR = 0x6,
395 IMAGE_CEE_CS_OBJECT = 0x7,
396 IMAGE_CEE_CS_STRUCT4 = 0x8,
397 IMAGE_CEE_CS_STRUCT32 = 0x9,
398 IMAGE_CEE_CS_BYVALUE = 0xa,
399} CorArgType;
400
401typedef enum CorNativeType {
402 NATIVE_TYPE_END = 0x0,
403 NATIVE_TYPE_VOID = 0x1,
404 NATIVE_TYPE_BOOLEAN = 0x2,
405 NATIVE_TYPE_I1 = 0x3,
406 NATIVE_TYPE_U1 = 0x4,
407 NATIVE_TYPE_I2 = 0x5,
408 NATIVE_TYPE_U2 = 0x6,
409 NATIVE_TYPE_I4 = 0x7,
410 NATIVE_TYPE_U4 = 0x8,
411 NATIVE_TYPE_I8 = 0x9,
412 NATIVE_TYPE_U8 = 0xa,
413 NATIVE_TYPE_R4 = 0xb,
414 NATIVE_TYPE_R8 = 0xc,
415 NATIVE_TYPE_SYSCHAR = 0xd,
416 NATIVE_TYPE_VARIANT = 0xe,
417 NATIVE_TYPE_CURRENCY = 0xf,
418 NATIVE_TYPE_PTR = 0x10,
419 NATIVE_TYPE_DECIMAL = 0x11,
420 NATIVE_TYPE_DATE = 0x12,
421 NATIVE_TYPE_BSTR = 0x13,
422 NATIVE_TYPE_LPSTR = 0x14,
423 NATIVE_TYPE_LPWSTR = 0x15,
424 NATIVE_TYPE_LPTSTR = 0x16,
425 NATIVE_TYPE_FIXEDSYSSTRING = 0x17,
426 NATIVE_TYPE_OBJECTREF = 0x18,
427 NATIVE_TYPE_IUNKNOWN = 0x19,
428 NATIVE_TYPE_IDISPATCH = 0x1a,
429 NATIVE_TYPE_STRUCT = 0x1b,
430 NATIVE_TYPE_INTF = 0x1c,
431 NATIVE_TYPE_SAFEARRAY = 0x1d,
432 NATIVE_TYPE_FIXEDARRAY = 0x1e,
433 NATIVE_TYPE_INT = 0x1f,
434 NATIVE_TYPE_UINT = 0x20,
435 NATIVE_TYPE_NESTEDSTRUCT = 0x21,
436 NATIVE_TYPE_BYVALSTR = 0x22,
437 NATIVE_TYPE_ANSIBSTR = 0x23,
438 NATIVE_TYPE_TBSTR = 0x24,
439 NATIVE_TYPE_VARIANTBOOL = 0x25,
440 NATIVE_TYPE_FUNC = 0x26,
441 NATIVE_TYPE_ASANY = 0x28,
442 NATIVE_TYPE_ARRAY = 0x2a,
443 NATIVE_TYPE_LPSTRUCT = 0x2b,
444 NATIVE_TYPE_CUSTOMMARSHALER = 0x2c,
445 NATIVE_TYPE_ERROR = 0x2d,
446 NATIVE_TYPE_IINSPECTABLE = 0x2e,
447 NATIVE_TYPE_HSTRING = 0x2f,
448 NATIVE_TYPE_MAX = 0x50
449} CorNativeType;
450
451typedef enum CorDescrGroupMethodType {
452 DESCR_GROUP_METHODDEF = 0,
453 DESCR_GROUP_METHODIMPL = 1
454} CorDescrGroupMethodType;
455
456typedef enum CorILMethodSect {
457 CorILMethod_Sect_KindMask = 0x3f,
458 CorILMethod_Sect_Reserved = 0,
459 CorILMethod_Sect_EHTable = 1,
460 CorILMethod_Sect_OptILTable = 2,
461 CorILMethod_Sect_FatFormat = 0x40,
462 CorILMethod_Sect_MoreSects = 0x80
463} CorILMethodSect;
464
465typedef enum CorILMethodFlags {
466 CorILMethod_InitLocals = 0x0010,
467 CorILMethod_MoreSects = 0x0008,
468 CorILMethod_CompressedIL = 0x0040,
469 CorILMethod_FormatShift = 3,
470 CorILMethod_FormatMask = 0x0007,
471 CorILMethod_SmallFormat = 0x0,
472 CorILMethod_TinyFormat = 0x0002,
473 CorILMethod_FatFormat = 0x0003,
474 CorILMethod_TinyFormat1 = 0x0006,
475} CorILMethodFlags;
476
477typedef enum CorExceptionFlag {
478 COR_ILEXCEPTION_CLAUSE_NONE,
479 COR_ILEXCEPTION_CLAUSE_OFFSETLEN = 0x0,
480 COR_ILEXCEPTION_CLAUSE_DEPRECATED = 0x0,
481 COR_ILEXCEPTION_CLAUSE_FILTER = 0x1,
482 COR_ILEXCEPTION_CLAUSE_FINALLY = 0x2,
483 COR_ILEXCEPTION_CLAUSE_FAULT = 0x4,
484 COR_ILEXCEPTION_CLAUSE_DUPLICATED = 0x8
485} CorExceptionFlag;
486
487typedef enum CorCheckDuplicatesFor {
488 MDDupAll = 0xffffffff,
489 MDDupENC = MDDupAll,
490 MDNoDupChecks = 0x00000000,
491 MDDupTypeDef = 0x00000001,
492 MDDupInterfaceImpl = 0x00000002,
493 MDDupMethodDef = 0x00000004,
494 MDDupTypeRef = 0x00000008,
495 MDDupMemberRef = 0x00000010,
496 MDDupCustomAttribute = 0x00000020,
497 MDDupParamDef = 0x00000040,
498 MDDupPermission = 0x00000080,
499 MDDupProperty = 0x00000100,
500 MDDupEvent = 0x00000200,
501 MDDupFieldDef = 0x00000400,
502 MDDupSignature = 0x00000800,
503 MDDupModuleRef = 0x00001000,
504 MDDupTypeSpec = 0x00002000,
505 MDDupImplMap = 0x00004000,
506 MDDupAssemblyRef = 0x00008000,
507 MDDupFile = 0x00010000,
508 MDDupExportedType = 0x00020000,
509 MDDupManifestResource = 0x00040000,
510 MDDupGenericParam = 0x00080000,
511 MDDupMethodSpec = 0x00100000,
512 MDDupGenericParamConstraint = 0x00200000,
513 MDDupAssembly = 0x10000000,
514 MDDupDefault = MDNoDupChecks | MDDupTypeRef | MDDupMemberRef | MDDupSignature | MDDupTypeSpec | MDDupMethodSpec
515} CorCheckDuplicatesFor;
516
517typedef enum CorRefToDefCheck {
518 MDRefToDefDefault = 0x00000003,
519 MDRefToDefAll = 0xffffffff,
520 MDRefToDefNone = 0x00000000,
521 MDTypeRefToDef = 0x00000001,
522 MDMemberRefToDef = 0x00000002
523} CorRefToDefCheck;
524
525typedef enum CorNotificationForTokenMovement {
526 MDNotifyDefault = 0x0000000f,
527 MDNotifyAll = 0xffffffff,
528 MDNotifyNone = 0x00000000,
529 MDNotifyMethodDef = 0x00000001,
530 MDNotifyMemberRef = 0x00000002,
531 MDNotifyFieldDef = 0x00000004,
532 MDNotifyTypeRef = 0x00000008,
533 MDNotifyTypeDef = 0x00000010,
534 MDNotifyParamDef = 0x00000020,
535 MDNotifyInterfaceImpl = 0x00000040,
536 MDNotifyProperty = 0x00000080,
537 MDNotifyEvent = 0x00000100,
538 MDNotifySignature = 0x00000200,
539 MDNotifyTypeSpec = 0x00000400,
540 MDNotifyCustomAttribute = 0x00000800,
541 MDNotifySecurityValue = 0x00001000,
542 MDNotifyPermission = 0x00002000,
543 MDNotifyModuleRef = 0x00004000,
544 MDNotifyNameSpace = 0x00008000,
545 MDNotifyAssemblyRef = 0x01000000,
546 MDNotifyFile = 0x02000000,
547 MDNotifyExportedType = 0x04000000,
548 MDNotifyResource = 0x08000000
549} CorNotificationForTokenMovement;
550
551typedef enum CorSetENC {
552 MDSetENCOn = 0x00000001,
553 MDSetENCOff = 0x00000002,
554 MDUpdateENC = 0x00000001,
555 MDUpdateFull = 0x00000002,
556 MDUpdateExtension = 0x00000003,
557 MDUpdateIncremental = 0x00000004,
558 MDUpdateDelta = 0x00000005,
559 MDUpdateMask = 0x00000007,
560} CorSetENC;
561
562typedef enum CorErrorIfEmitOutOfOrder {
563 MDErrorOutOfOrderDefault = 0x00000000,
564 MDErrorOutOfOrderNone = 0x00000000,
565 MDErrorOutOfOrderAll = 0xffffffff,
566 MDMethodOutOfOrder = 0x00000001,
567 MDFieldOutOfOrder = 0x00000002,
568 MDParamOutOfOrder = 0x00000004,
569 MDPropertyOutOfOrder = 0x00000008,
570 MDEventOutOfOrder = 0x00000010,
571} CorErrorIfEmitOutOfOrder;
572
573typedef enum CorImportOptions {
574 MDImportOptionDefault = 0x00000000,
575 MDImportOptionAll = 0xffffffff,
576 MDImportOptionAllTypeDefs = 0x00000001,
577 MDImportOptionAllMethodDefs = 0x00000002,
578 MDImportOptionAllFieldDefs = 0x00000004,
579 MDImportOptionAllProperties = 0x00000008,
580 MDImportOptionAllEvents = 0x00000010,
581 MDImportOptionAllCustomAttributes = 0x00000020,
582 MDImportOptionAllExportedTypes = 0x00000040
583} CorImportOptions;
584
585typedef enum CorThreadSafetyOptions {
586 MDThreadSafetyDefault = 0x00000000,
587 MDThreadSafetyOff = 0x00000000,
588 MDThreadSafetyOn = 0x00000001
589} CorThreadSafetyOptions;
590
591typedef enum CorLinkerOptions {
592 MDAssembly = 0x00000000,
593 MDNetModule = 0x00000001
594} CorLinkerOptions;
595
596typedef enum MergeFlags {
597 MergeFlagsNone = 0,
598 MergeManifest = 0x00000001,
599 DropMemberRefCAs = 0x00000002,
600 NoDupCheck = 0x00000004,
601 MergeExportedTypes = 0x00000008
602} MergeFlags;
603
604typedef enum CorLocalRefPreservation {
605 MDPreserveLocalRefsNone = 0x00000000,
606 MDPreserveLocalTypeRef = 0x00000001,
607 MDPreserveLocalMemberRef = 0x00000002
608} CorLocalRefPreservation;
609
610typedef enum CorTokenType {
611 mdtModule = 0x00000000,
612 mdtTypeRef = 0x01000000,
613 mdtTypeDef = 0x02000000,
614 mdtFieldDef = 0x04000000,
615 mdtMethodDef = 0x06000000,
616 mdtParamDef = 0x08000000,
617 mdtInterfaceImpl = 0x09000000,
618 mdtMemberRef = 0x0a000000,
619 mdtCustomAttribute = 0x0c000000,
620 mdtPermission = 0x0e000000,
621 mdtSignature = 0x11000000,
622 mdtEvent = 0x14000000,
623 mdtProperty = 0x17000000,
624 mdtMethodImpl = 0x19000000,
625 mdtModuleRef = 0x1a000000,
626 mdtTypeSpec = 0x1b000000,
627 mdtAssembly = 0x20000000,
628 mdtAssemblyRef = 0x23000000,
629 mdtFile = 0x26000000,
630 mdtExportedType = 0x27000000,
631 mdtManifestResource = 0x28000000,
632 mdtGenericParam = 0x2a000000,
633 mdtMethodSpec = 0x2b000000,
634 mdtGenericParamConstraint = 0x2c000000,
635 mdtString = 0x70000000,
636 mdtName = 0x71000000,
637 mdtBaseType = 0x72000000,
638} CorTokenType;
639
640typedef enum CorOpenFlags {
641 ofReadWriteMask = 0x00000001,
642 ofRead = 0x00000000,
643 ofWrite = 0x00000001,
644 ofCopyMemory = 0x00000002,
645 ofReadOnly = 0x00000010,
646 ofTakeOwnership = 0x00000020,
647 ofNoTypeLib = 0x00000080,
648 ofNoTransform = 0x00001000,
649 ofReserved1 = 0x00000100,
650 ofReserved2 = 0x00000200,
651 ofReserved3 = 0x00000400,
652 ofReserved = 0xffffef40
653} CorOpenFlags;
654
655typedef enum CorAttributeTargets {
656 catAssembly = 0x0001,
657 catModule = 0x0002,
658 catClass = 0x0004,
659 catStruct = 0x0008,
660 catEnum = 0x0010,
661 catConstructor = 0x0020,
662 catMethod = 0x0040,
663 catProperty = 0x0080,
664 catField = 0x0100,
665 catEvent = 0x0200,
666 catInterface = 0x0400,
667 catParameter = 0x0800,
668 catDelegate = 0x1000,
669 catGenericParameter = 0x4000,
670 catAll = catAssembly | catModule | catClass | catStruct | catEnum | catConstructor
671 | catMethod | catProperty | catField | catEvent | catInterface | catParameter | catDelegate | catGenericParameter,
672 catClassMembers = catClass | catStruct | catEnum | catConstructor | catMethod | catProperty | catField | catEvent | catDelegate | catInterface,
673} CorAttributeTargets;
674
675typedef enum CorFileMapping {
676 fmFlat = 0,
677 fmExecutableImage = 1
678} CorFileMapping;
679
680typedef enum CompilationRelaxationsEnum {
681 CompilationRelaxations_NoStringInterning = 0x8
682} CompilationRelaxationEnum;
683
684typedef enum NGenHintEnum {
685 NGenDefault = 0x0,
686 NGenEager = 0x1,
687 NGenLazy = 0x2,
688 NGenNever = 0x3
689} NGenHintEnum;
690
691typedef enum LoadHintEnum {
692 LoadDefault = 0x0,
693 LoadAlways = 0x01,
694 LoadSometimes = 0x2,
695 LoadNever = 0x3
696} LoadHintEnum;
697
698#ifndef _CORSAVESIZE_DEFINED_
699#define _CORSAVESIZE_DEFINED_
700typedef enum CorSaveSize {
701 cssAccurate = 0x0000,
702 cssQuick = 0x0001,
703 cssDiscardTransientCAs = 0x0002
704} CorSaveSize;
705#endif
706
707typedef enum NativeTypeArrayFlags {
708 ntaSizeParamIndexSpecified = 0x0001,
709 ntaReserved = 0xfffe
710} NativeTypeArrayFlags;
711
712typedef LPVOID mdScope;
713typedef ULONG32 mdToken;
714typedef mdToken mdModule;
715typedef mdToken mdTypeRef;
716typedef mdToken mdTypeDef;
717typedef mdToken mdFieldDef;
718typedef mdToken mdMethodDef;
719typedef mdToken mdParamDef;
720typedef mdToken mdInterfaceImpl;
721typedef mdToken mdMemberRef;
722typedef mdToken mdCustomAttribute;
723typedef mdToken mdPermission;
724typedef mdToken mdSignature;
725typedef mdToken mdEvent;
726typedef mdToken mdProperty;
727typedef mdToken mdModuleRef;
728typedef mdToken mdAssembly;
729typedef mdToken mdAssemblyRef;
730typedef mdToken mdFile;
731typedef mdToken mdExportedType;
732typedef mdToken mdManifestResource;
733typedef mdToken mdTypeSpec;
734typedef mdToken mdGenericParam;
735typedef mdToken mdMethodSpec;
736typedef mdToken mdGenericParamConstraint;
737typedef mdToken mdString;
738typedef mdToken mdCPToken;
739typedef ULONG RID;
740typedef CorTypeAttr CorRegTypeAttr;
741typedef void *HCORENUM;
742typedef unsigned char COR_SIGNATURE;
743typedef COR_SIGNATURE *PCOR_SIGNATURE;
744typedef const COR_SIGNATURE *PCCOR_SIGNATURE;
745typedef const char *MDUTF8CSTR;
746typedef char *MDUTF8STR;
747typedef void *PSECURITY_PROPS;
748typedef void *PSECURITY_VALUE;
749typedef void **PPSECURITY_PROPS;
750typedef void **PPSECURITY_VALUE;
751
752typedef struct COR_SECATTR {
753 mdMemberRef tkCtor;
754 const void *pCustomAttribute;
755 ULONG cbCustomAttribute;
756} COR_SECATTR;
757
758typedef struct IMAGE_COR_ILMETHOD_SECT_SMALL {
759 BYTE Kind;
760 BYTE DataSize;
761} IMAGE_COR_ILMETHOD_SECT_SMALL;
762
763typedef struct IMAGE_COR_ILMETHOD_SECT_FAT {
764 unsigned int Kind : 8;
765 unsigned int DataSize : 24;
766} IMAGE_COR_ILMETHOD_SECT_FAT;
767
768typedef struct IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT {
769 CorExceptionFlag Flags;
770 DWORD TryOffset;
771 DWORD TryLength;
772 DWORD HandlerOffset;
773 DWORD HandlerLength;
774 __C89_NAMELESS union {
775 DWORD ClassToken;
776 DWORD FilterOffset;
777 };
778} IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT;
779
780typedef struct IMAGE_COR_ILMETHOD_SECT_EH_FAT {
781 IMAGE_COR_ILMETHOD_SECT_FAT SectFat;
782 IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT Clauses[1];
783} IMAGE_COR_ILMETHOD_SECT_EH_FAT;
784
785typedef struct IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_SMALL {
786 unsigned int Flags : 16;
787 unsigned int TryOffset : 16;
788 unsigned int TryLength : 8;
789 unsigned int HandlerOffset : 16;
790 unsigned int HandlerLength : 8;
791 __C89_NAMELESS union {
792 DWORD ClassToken;
793 DWORD FilterOffset;
794 };
795} IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_SMALL;
796
797typedef struct IMAGE_COR_ILMETHOD_SECT_EH_SMALL {
798 IMAGE_COR_ILMETHOD_SECT_SMALL SectSmall;
799 WORD Reserved;
800 IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_SMALL Clauses[1];
801} IMAGE_COR_ILMETHOD_SECT_EH_SMALL;
802
803typedef union IMAGE_COR_ILMETHOD_SECT_EH {
804 IMAGE_COR_ILMETHOD_SECT_EH_SMALL Small;
805 IMAGE_COR_ILMETHOD_SECT_EH_FAT Fat;
806} IMAGE_COR_ILMETHOD_SECT_EH;
807
808typedef struct IMAGE_COR_ILMETHOD_TINY {
809 BYTE Flags_CodeSize;
810} IMAGE_COR_ILMETHOD_TINY;
811
812typedef struct IMAGE_COR_ILMETHOD_FAT {
813 unsigned int Flags : 12;
814 unsigned int Size : 4;
815 unsigned int MaxStack : 16;
816 DWORD CodeSize;
817 mdSignature LocalVarSigTok;
818} IMAGE_COR_ILMETHOD_FAT;
819
820typedef union IMAGE_COR_ILMETHOD {
821 IMAGE_COR_ILMETHOD_TINY Tiny;
822 IMAGE_COR_ILMETHOD_FAT Fat;
823} IMAGE_COR_ILMETHOD;
824
825typedef struct IMAGE_COR_VTABLEFIXUP {
826 ULONG RVA;
827 USHORT Count;
828 USHORT Type;
829} IMAGE_COR_VTABLEFIXUP;
830
831#ifndef _COR_FIELD_OFFSET_
832#define _COR_FIELD_OFFSET_
833typedef struct COR_FIELD_OFFSET {
834 mdFieldDef ridOfField;
835 ULONG ulOffset;
836} COR_FIELD_OFFSET;
837#endif
838
839#ifndef IMAGE_DIRECTORY_ENTRY_COMHEADER
840#define IMAGE_DIRECTORY_ENTRY_COMHEADER 14
841#endif
842
843#define FRAMEWORK_REGISTRY_KEY "Software\\Microsoft\\.NETFramework"
844#define FRAMEWORK_REGISTRY_KEY_W L"Software\\Microsoft\\.NETFramework"
845
846#ifdef _WIN64
847#define USER_FRAMEWORK_REGISTRY_KEY "Software\\Microsoft\\.NETFramework64"
848#define USER_FRAMEWORK_REGISTRY_KEY_W L"Software\\Microsoft\\.NETFramework64"
849#else
850#define USER_FRAMEWORK_REGISTRY_KEY "Software\\Microsoft\\.NETFramework"
851#define USER_FRAMEWORK_REGISTRY_KEY_W L"Software\\Microsoft\\.NETFramework"
852#endif
853
854#define COR_CTOR_METHOD_NAME ".ctor"
855#define COR_CTOR_METHOD_NAME_W L".ctor"
856#define COR_CCTOR_METHOD_NAME ".cctor"
857#define COR_CCTOR_METHOD_NAME_W L".cctor"
858
859#define COR_ENUM_FIELD_NAME "value__"
860#define COR_ENUM_FIELD_NAME_W L"value__"
861
862#define COR_DELETED_NAME_A "_Deleted"
863#define COR_DELETED_NAME_W L"_Deleted"
864#define COR_VTABLEGAP_NAME_A "_VtblGap"
865#define COR_VTABLEGAP_NAME_W L"_VtblGap"
866
867#define COR_IS_32BIT_REQUIRED(_FLAGS) (((_FLAGS) & (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED)) == (COMIMAGE_FLAGS_32BITREQUIRED))
868#define COR_IS_32BIT_PREFERRED(_FLAGS) (((_FLAGS) & (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED)) == (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED))
869#define COR_SET_32BIT_REQUIRED(_FLAGS) do { _FLAGS = (_FLAGS & ~COMIMAGE_FLAGS_32BITPREFERRED) | COMIMAGE_FLAGS_32BITREQUIRED; } while (0)
870#define COR_SET_32BIT_PREFERRED(_FLAGS) do { _FLAGS |= COMIMAGE_FLAGS_32BITPREFERRED | COMIMAGE_FLAGS_32BITREQUIRED; } while (0)
871#define COR_CLEAR_32BIT_REQUIRED(_flagsfield) do { _FLAGS &= ~ (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED); } while (0)
872#define COR_CLEAR_32BIT_PREFERRED(_FLAGS) do { _FLAGS &= ~ (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED); } while (0)
873
874#define COR_IS_METHOD_MANAGED_IL(flags) ((flags & 0xf) == (miIL | miManaged))
875#define COR_IS_METHOD_MANAGED_OPTIL(flags) ((flags & 0xf) == (miOPTIL | miManaged))
876#define COR_IS_METHOD_MANAGED_NATIVE(flags) ((flags & 0xf) == (miNative | miManaged))
877#define COR_IS_METHOD_UNMANAGED_NATIVE(flags) ((flags & 0xf) == (miNative | miUnmanaged))
878
879#define CMOD_CALLCONV_NAMESPACE_OLD "System.Runtime.InteropServices"
880#define CMOD_CALLCONV_NAMESPACE "System.Runtime.CompilerServices"
881#define CMOD_CALLCONV_NAME_CDECL "CallConvCdecl"
882#define CMOD_CALLCONV_NAME_STDCALL "CallConvStdcall"
883#define CMOD_CALLCONV_NAME_THISCALL "CallConvThiscall"
884#define CMOD_CALLCONV_NAME_FASTCALL "CallConvFastcall"
885
886#define IsDeletedName(strName) (strncmp (strName, COR_DELETED_NAME_A, COR_DELETED_NAME_LENGTH) == 0)
887#define IsVtblGapName(strName) (strncmp (strName, COR_VTABLEGAP_NAME_A, COR_VTABLEGAP_NAME_LENGTH) == 0)
888
889#define IsTdNotPublic(x) (((x) & tdVisibilityMask) == tdNotPublic)
890#define IsTdPublic(x) (((x) & tdVisibilityMask) == tdPublic)
891#define IsTdNestedPublic(x) (((x) & tdVisibilityMask) == tdNestedPublic)
892#define IsTdNestedPrivate(x) (((x) & tdVisibilityMask) == tdNestedPrivate)
893#define IsTdNestedFamily(x) (((x) & tdVisibilityMask) == tdNestedFamily)
894#define IsTdNestedAssembly(x) (((x) & tdVisibilityMask) == tdNestedAssembly)
895#define IsTdNestedFamANDAssem(x) (((x) & tdVisibilityMask) == tdNestedFamANDAssem)
896#define IsTdNestedFamORAssem(x) (((x) & tdVisibilityMask) == tdNestedFamORAssem)
897#define IsTdNested(x) (((x) & tdVisibilityMask) >= tdNestedPublic)
898#define IsTdAutoLayout(x) (((x) & tdLayoutMask) == tdAutoLayout)
899#define IsTdSequentialLayout(x) (((x) & tdLayoutMask) == tdSequentialLayout)
900#define IsTdExplicitLayout(x) (((x) & tdLayoutMask) == tdExplicitLayout)
901#define IsTdClass(x) (((x) & tdClassSemanticsMask) == tdClass)
902#define IsTdInterface(x) (((x) & tdClassSemanticsMask) == tdInterface)
903#define IsTdAbstract(x) ((x) & tdAbstract)
904#define IsTdSealed(x) ((x) & tdSealed)
905#define IsTdSpecialName(x) ((x) & tdSpecialName)
906#define IsTdImport(x) ((x) & tdImport)
907#define IsTdSerializable(x) ((x) & tdSerializable)
908#define IsTdWindowsRuntime(x) ((x) & tdWindowsRuntime)
909#define IsTdAnsiClass(x) (((x) & tdStringFormatMask) == tdAnsiClass)
910#define IsTdUnicodeClass(x) (((x) & tdStringFormatMask) == tdUnicodeClass)
911#define IsTdAutoClass(x) (((x) & tdStringFormatMask) == tdAutoClass)
912#define IsTdCustomFormatClass(x) (((x) & tdStringFormatMask) == tdCustomFormatClass)
913#define IsTdBeforeFieldInit(x) ((x) & tdBeforeFieldInit)
914#define IsTdForwarder(x) ((x) & tdForwarder)
915#define IsTdRTSpecialName(x) ((x) & tdRTSpecialName)
916#define IsTdHasSecurity(x) ((x) & tdHasSecurity)
917
918#define IsMdPrivateScope(x) (((x) & mdMemberAccessMask) == mdPrivateScope)
919#define IsMdPrivate(x) (((x) & mdMemberAccessMask) == mdPrivate)
920#define IsMdFamANDAssem(x) (((x) & mdMemberAccessMask) == mdFamANDAssem)
921#define IsMdAssem(x) (((x) & mdMemberAccessMask) == mdAssem)
922#define IsMdFamily(x) (((x) & mdMemberAccessMask) == mdFamily)
923#define IsMdFamORAssem(x) (((x) & mdMemberAccessMask) == mdFamORAssem)
924#define IsMdPublic(x) (((x) & mdMemberAccessMask) == mdPublic)
925#define IsMdUnmanagedExport(x) ((x) & mdUnmanagedExport)
926#define IsMdStatic(x) ((x) & mdStatic)
927#define IsMdFinal(x) ((x) & mdFinal)
928#define IsMdVirtual(x) ((x) & mdVirtual)
929#define IsMdHideBySig(x) ((x) & mdHideBySig)
930#define IsMdReuseSlot(x) (((x) & mdVtableLayoutMask) == mdReuseSlot)
931#define IsMdNewSlot(x) (((x) & mdVtableLayoutMask) == mdNewSlot)
932#define IsMdCheckAccessOnOverride(x) ((x) & mdCheckAccessOnOverride)
933#define IsMdAbstract(x) ((x) & mdAbstract)
934#define IsMdSpecialName(x) ((x) & mdSpecialName)
935#define IsMdPinvokeImpl(x) ((x) & mdPinvokeImpl)
936#define IsMdRTSpecialName(x) ((x) & mdRTSpecialName)
937#define IsMdInstanceInitializer(x, str) (((x) & mdRTSpecialName) && !strcmp ((str), COR_CTOR_METHOD_NAME))
938#define IsMdInstanceInitializerW(x, str) (((x) & mdRTSpecialName) && !wcscmp ((str), COR_CTOR_METHOD_NAME_W))
939#define IsMdClassConstructor(x, str) (((x) & mdRTSpecialName) && !strcmp ((str), COR_CCTOR_METHOD_NAME))
940#define IsMdClassConstructorW(x, str) (((x) & mdRTSpecialName) && !wcscmp ((str), COR_CCTOR_METHOD_NAME_W))
941#define IsMdHasSecurity(x) ((x) & mdHasSecurity)
942#define IsMdRequireSecObject(x) ((x) & mdRequireSecObject)
943
944#define IsFdPrivateScope(x) (((x) & fdFieldAccessMask) == fdPrivateScope)
945#define IsFdPrivate(x) (((x) & fdFieldAccessMask) == fdPrivate)
946#define IsFdFamANDAssem(x) (((x) & fdFieldAccessMask) == fdFamANDAssem)
947#define IsFdAssembly(x) (((x) & fdFieldAccessMask) == fdAssembly)
948#define IsFdFamily(x) (((x) & fdFieldAccessMask) == fdFamily)
949#define IsFdFamORAssem(x) (((x) & fdFieldAccessMask) == fdFamORAssem)
950#define IsFdPublic(x) (((x) & fdFieldAccessMask) == fdPublic)
951#define IsFdStatic(x) ((x) & fdStatic)
952#define IsFdInitOnly(x) ((x) & fdInitOnly)
953#define IsFdLiteral(x) ((x) & fdLiteral)
954#define IsFdNotSerialized(x) ((x) & fdNotSerialized)
955#define IsFdHasFieldRVA(x) ((x) & fdHasFieldRVA)
956#define IsFdSpecialName(x) ((x) & fdSpecialName)
957#define IsFdRTSpecialName(x) ((x) & fdRTSpecialName)
958#define IsFdHasFieldMarshal(x) ((x) & fdHasFieldMarshal)
959#define IsFdPinvokeImpl(x) ((x) & fdPinvokeImpl)
960#define IsFdHasDefault(x) ((x) & fdHasDefault)
961
962#define IsPdIn(x) ((x) & pdIn)
963#define IsPdOut(x) ((x) & pdOut)
964#define IsPdOptional(x) ((x) & pdOptional)
965#define IsPdHasDefault(x) ((x) & pdHasDefault)
966#define IsPdHasFieldMarshal(x) ((x) & pdHasFieldMarshal)
967
968#define IsPrSpecialName(x) ((x) & prSpecialName)
969#define IsPrRTSpecialName(x) ((x) & prRTSpecialName)
970#define IsPrHasDefault(x) ((x) & prHasDefault)
971
972#define IsEvSpecialName(x) ((x) & evSpecialName)
973#define IsEvRTSpecialName(x) ((x) & evRTSpecialName)
974
975#define IsMsSetter(x) ((x) & msSetter)
976#define IsMsGetter(x) ((x) & msGetter)
977#define IsMsOther(x) ((x) & msOther)
978#define IsMsAddOn(x) ((x) & msAddOn)
979#define IsMsRemoveOn(x) ((x) & msRemoveOn)
980#define IsMsFire(x) ((x) & msFire)
981
982#define IsDclActionNil(x) (((x) & dclActionMask) == dclActionNil)
983#define IsDclActionAnyStackModifier(x) ((((x) & dclActionMask) == dclAssert) || (((x) & dclActionMask) == dclDeny) || (((x) & dclActionMask) == dclPermitOnly))
984#define IsAssemblyDclAction(x) (((x) >= dclRequestMinimum) && ((x) <= dclRequestRefuse))
985#define IsNGenOnlyDclAction(x) (((x) == dclPrejitGrant) || ((x) == dclPrejitDenied))
986
987#define IsMiIL(x) (((x) & miCodeTypeMask) == miIL)
988#define IsMiNative(x) (((x) & miCodeTypeMask) == miNative)
989#define IsMiOPTIL(x) (((x) & miCodeTypeMask) == miOPTIL)
990#define IsMiRuntime(x) (((x) & miCodeTypeMask) == miRuntime)
991#define IsMiUnmanaged(x) (((x) & miManagedMask) == miUnmanaged)
992#define IsMiManaged(x) (((x) & miManagedMask) == miManaged)
993#define IsMiNoInlining(x) ((x) & miNoInlining)
994#define IsMiForwardRef(x) ((x) & miForwardRef)
995#define IsMiSynchronized(x) ((x) & miSynchronized)
996#define IsMiNoOptimization(x) ((x) & miNoOptimization)
997#define IsMiPreserveSig(x) ((x) & miPreserveSig)
998#define IsMiAggressiveInlining(x) ((x) & miAggressiveInlining)
999#define IsMiInternalCall(x) ((x) & miInternalCall)
1000
1001#define IsPmNoMangle(x) ((x) & pmNoMangle)
1002#define IsPmCharSetNotSpec(x) (((x) & pmCharSetMask) == pmCharSetNotSpec)
1003#define IsPmCharSetAnsi(x) (((x) & pmCharSetMask) == pmCharSetAnsi)
1004#define IsPmCharSetUnicode(x) (((x) & pmCharSetMask) == pmCharSetUnicode)
1005#define IsPmCharSetAuto(x) (((x) & pmCharSetMask) == pmCharSetAuto)
1006#define IsPmSupportsLastError(x) ((x) & pmSupportsLastError)
1007#define IsPmCallConvWinapi(x) (((x) & pmCallConvMask) == pmCallConvWinapi)
1008#define IsPmCallConvCdecl(x) (((x) & pmCallConvMask) == pmCallConvCdecl)
1009#define IsPmCallConvStdcall(x) (((x) & pmCallConvMask) == pmCallConvStdcall)
1010#define IsPmCallConvThiscall(x) (((x) & pmCallConvMask) == pmCallConvThiscall)
1011#define IsPmCallConvFastcall(x) (((x) & pmCallConvMask) == pmCallConvFastcall)
1012#define IsPmBestFitEnabled(x) (((x) & pmBestFitMask) == pmBestFitEnabled)
1013#define IsPmBestFitDisabled(x) (((x) & pmBestFitMask) == pmBestFitDisabled)
1014#define IsPmBestFitUseAssem(x) (((x) & pmBestFitMask) == pmBestFitUseAssem)
1015#define IsPmThrowOnUnmappableCharEnabled(x) (((x) & pmThrowOnUnmappableCharMask) == pmThrowOnUnmappableCharEnabled)
1016#define IsPmThrowOnUnmappableCharDisabled(x) (((x) & pmThrowOnUnmappableCharMask) == pmThrowOnUnmappableCharDisabled)
1017#define IsPmThrowOnUnmappableCharUseAssem(x) (((x) & pmThrowOnUnmappableCharMask) == pmThrowOnUnmappableCharUseAssem)
1018
1019#define IsAfRetargetable(x) ((x) & afRetargetable)
1020#define IsAfContentType_Default(x) (((x) & afContentType_Mask) == afContentType_Default)
1021#define IsAfContentType_WindowsRuntime(x) (((x) & afContentType_Mask) == afContentType_WindowsRuntime)
1022#define IsAfPA_MSIL(x) (((x) & afPA_Mask) == afPA_MSIL)
1023#define IsAfPA_x86(x) (((x) & afPA_Mask) == afPA_x86)
1024#define IsAfPA_IA64(x) (((x) & afPA_Mask) == afPA_IA64)
1025#define IsAfPA_AMD64(x) (((x) & afPA_Mask) == afPA_AMD64)
1026#define IsAfPA_ARM(x) (((x) & afPA_Mask) == afPA_ARM)
1027#define IsAfPA_NoPlatform(x) (((x) & afPA_FullMask) == afPA_NoPlatform)
1028#define IsAfPA_Specified(x) ((x) & afPA_Specified)
1029#define PAIndex(x) (((x) & afPA_Mask) >> afPA_Shift)
1030#define PAFlag(x) (((x) << afPA_Shift) & afPA_Mask)
1031#define PrepareForSaving(x) ((x) &(((x) & afPA_Specified) ? ~afPA_Specified : ~afPA_FullMask))
1032#define IsAfEnableJITcompileTracking(x) ((x) & afEnableJITcompileTracking)
1033#define IsAfDisableJITcompileOptimizer(x) ((x) & afDisableJITcompileOptimizer)
1034#define IsAfPublicKey(x) ((x) & afPublicKey)
1035#define IsAfPublicKeyToken(x) (((x) & afPublicKey) == 0)
1036
1037#define IsMrPublic(x) (((x) & mrVisibilityMask) == mrPublic)
1038#define IsMrPrivate(x) (((x) & mrVisibilityMask) == mrPrivate)
1039
1040#define IsFfContainsMetaData(x) (! ((x) & ffContainsNoMetaData))
1041#define IsFfContainsNoMetaData(x) ((x) & ffContainsNoMetaData)
1042
1043#define IMAGE_CEE_CS_CALLCONV_INSTANTIATION IMAGE_CEE_CS_CALLCONV_GENERICINST
1044
1045#define IsENCDelta(x) (((x) & MDUpdateMask) == MDUpdateDelta)
1046
1047#define RidToToken(rid, tktype) ((rid) |= (tktype))
1048#define TokenFromRid(rid, tktype) ((rid) | (tktype))
1049#define RidFromToken(tk) ((RID) ((tk) & 0x00ffffff))
1050#define TypeFromToken(tk) ((ULONG32) ((tk) & 0xff000000))
1051#define IsNilToken(tk) ((RidFromToken (tk)) == 0)
1052
1053#define mdTokenNil ((mdToken)0)
1054#define mdModuleNil ((mdModule)mdtModule)
1055#define mdTypeRefNil ((mdTypeRef)mdtTypeRef)
1056#define mdTypeDefNil ((mdTypeDef)mdtTypeDef)
1057#define mdFieldDefNil ((mdFieldDef)mdtFieldDef)
1058#define mdMethodDefNil ((mdMethodDef)mdtMethodDef)
1059#define mdParamDefNil ((mdParamDef)mdtParamDef)
1060#define mdInterfaceImplNil ((mdInterfaceImpl)mdtInterfaceImpl)
1061#define mdMemberRefNil ((mdMemberRef)mdtMemberRef)
1062#define mdCustomAttributeNil ((mdCustomAttribute)mdtCustomAttribute)
1063#define mdPermissionNil ((mdPermission)mdtPermission)
1064#define mdSignatureNil ((mdSignature)mdtSignature)
1065#define mdEventNil ((mdEvent)mdtEvent)
1066#define mdPropertyNil ((mdProperty)mdtProperty)
1067#define mdModuleRefNil ((mdModuleRef)mdtModuleRef)
1068#define mdTypeSpecNil ((mdTypeSpec)mdtTypeSpec)
1069#define mdAssemblyNil ((mdAssembly)mdtAssembly)
1070#define mdAssemblyRefNil ((mdAssemblyRef)mdtAssemblyRef)
1071#define mdFileNil ((mdFile)mdtFile)
1072#define mdExportedTypeNil ((mdExportedType)mdtExportedType)
1073#define mdManifestResourceNil ((mdManifestResource)mdtManifestResource)
1074#define mdGenericParamNil ((mdGenericParam)mdtGenericParam)
1075#define mdGenericParamConstraintNil ((mdGenericParamConstraint)mdtGenericParamConstraint)
1076#define mdMethodSpecNil ((mdMethodSpec)mdtMethodSpec)
1077#define mdStringNil ((mdString)mdtString)
1078
1079#define IsOfRead(x) (((x) & ofReadWriteMask) == ofRead)
1080#define IsOfReadWrite(x) (((x) & ofReadWriteMask) == ofWrite)
1081#define IsOfCopyMemory(x) ((x) & ofCopyMemory)
1082#define IsOfReadOnly(x) ((x) & ofReadOnly)
1083#define IsOfTakeOwnership(x) ((x) & ofTakeOwnership)
1084#define IsOfReserved(x) (((x) & ofReserved) != 0)
1085
1086#ifndef IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS
1087#define IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS (IMAGE_CEE_CS_CALLCONV_DEFAULT | IMAGE_CEE_CS_CALLCONV_HASTHIS)
1088#endif
1089
1090#define INTEROP_AUTOPROXY_TYPE_W L"System.Runtime.InteropServices.AutomationProxyAttribute"
1091#define INTEROP_AUTOPROXY_TYPE "System.Runtime.InteropServices.AutomationProxyAttribute"
1092#define INTEROP_AUTOPROXY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_BOOLEAN}
1093#define INTEROP_BESTFITMAPPING_TYPE_W L"System.Runtime.InteropServices.BestFitMappingAttribute"
1094#define INTEROP_BESTFITMAPPING_TYPE "System.Runtime.InteropServices.BestFitMappingAttribute"
1095#define INTEROP_BESTFITMAPPING_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_BOOLEAN, ELEMENT_TYPE_BOOLEAN}
1096#define INTEROP_CLASSINTERFACE_TYPE_W L"System.Runtime.InteropServices.ClassInterfaceAttribute"
1097#define INTEROP_CLASSINTERFACE_TYPE "System.Runtime.InteropServices.ClassInterfaceAttribute"
1098#define INTEROP_CLASSINTERFACE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2}
1099#define INTEROP_COCLASS_TYPE_W L"System.Runtime.InteropServices.CoClassAttribute"
1100#define INTEROP_COCLASS_TYPE "System.Runtime.InteropServices.CoClassAttribute"
1101#define INTEROP_COMALIASNAME_TYPE_W L"System.Runtime.InteropServices.ComAliasNameAttribute"
1102#define INTEROP_COMALIASNAME_TYPE "System.Runtime.InteropServices.ComAliasNameAttribute"
1103#define INTEROP_COMALIASNAME_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING}
1104#define INTEROP_COMCOMPATIBLEVERSION_TYPE_W L"System.Runtime.InteropServices.ComCompatibleVersionAttribute"
1105#define INTEROP_COMCOMPATIBLEVERSION_TYPE "System.Runtime.InteropServices.ComCompatibleVersionAttribute"
1106#define INTEROP_COMCOMPATIBLEVERSION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 4, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2, ELEMENT_TYPE_I2, ELEMENT_TYPE_I2, ELEMENT_TYPE_I2}
1107#define INTEROP_COMCONVERSIONLOSS_TYPE_W L"System.Runtime.InteropServices.ComConversionLossAttribute"
1108#define INTEROP_COMCONVERSIONLOSS_TYPE "System.Runtime.InteropServices.ComConversionLossAttribute"
1109#define INTEROP_COMCONVERSIONLOSS_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1110#define INTEROP_COMDEFAULTINTERFACE_TYPE_W L"System.Runtime.InteropServices.ComDefaultInterfaceAttribute"
1111#define INTEROP_COMDEFAULTINTERFACE_TYPE "System.Runtime.InteropServices.ComDefaultInterfaceAttribute"
1112#define INTEROP_COMEMULATE_TYPE_W L"System.Runtime.InteropServices.ComEmulateAttribute"
1113#define INTEROP_COMEMULATE_TYPE "System.Runtime.InteropServices.ComEmulateAttribute"
1114#define INTEROP_COMEMULATE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING}
1115#define INTEROP_COMEVENTINTERFACE_TYPE_W L"System.Runtime.InteropServices.ComEventInterfaceAttribute"
1116#define INTEROP_COMEVENTINTERFACE_TYPE "System.Runtime.InteropServices.ComEventInterfaceAttribute"
1117#define INTEROP_COMIMPORT_TYPE_W L"System.Runtime.InteropServices.ComImportAttribute"
1118#define INTEROP_COMIMPORT_TYPE "System.Runtime.InteropServices.ComImportAttribute"
1119#define INTEROP_COMIMPORT_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1120#define INTEROP_COMREGISTERFUNCTION_TYPE_W L"System.Runtime.InteropServices.ComRegisterFunctionAttribute"
1121#define INTEROP_COMREGISTERFUNCTION_TYPE "System.Runtime.InteropServices.ComRegisterFunctionAttribute"
1122#define INTEROP_COMREGISTERFUNCTION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1123#define INTEROP_COMSOURCEINTERFACES_TYPE_W L"System.Runtime.InteropServices.ComSourceInterfacesAttribute"
1124#define INTEROP_COMSOURCEINTERFACES_TYPE "System.Runtime.InteropServices.ComSourceInterfacesAttribute"
1125#define INTEROP_COMSOURCEINTERFACES_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING}
1126#define INTEROP_COMSUBSTITUTABLEINTERFACE_TYPE_W L"System.Runtime.InteropServices.ComSubstitutableInterfaceAttribute"
1127#define INTEROP_COMSUBSTITUTABLEINTERFACE_TYPE "System.Runtime.InteropServices.ComSubstitutableInterfaceAttribute"
1128#define INTEROP_COMSUBSTITUTABLEINTERFACE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1129#define INTEROP_COMUNREGISTERFUNCTION_TYPE_W L"System.Runtime.InteropServices.ComUnregisterFunctionAttribute"
1130#define INTEROP_COMUNREGISTERFUNCTION_TYPE "System.Runtime.InteropServices.ComUnregisterFunctionAttribute"
1131#define INTEROP_COMUNREGISTERFUNCTION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1132#define INTEROP_COMVISIBLE_TYPE_W L"System.Runtime.InteropServices.ComVisibleAttribute"
1133#define INTEROP_COMVISIBLE_TYPE "System.Runtime.InteropServices.ComVisibleAttribute"
1134#define INTEROP_COMVISIBLE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_BOOLEAN}
1135#define INTEROP_DATETIMEVALUE_TYPE_W L"System.Runtime.CompilerServices.DateTimeConstantAttribute"
1136#define INTEROP_DATETIMEVALUE_TYPE "System.Runtime.CompilerServices.DateTimeConstantAttribute"
1137#define INTEROP_DATETIMEVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I8}
1138#define INTEROP_DECIMALVALUE_TYPE_W L"System.Runtime.CompilerServices.DecimalConstantAttribute"
1139#define INTEROP_DECIMALVALUE_TYPE "System.Runtime.CompilerServices.DecimalConstantAttribute"
1140#define INTEROP_DECIMALVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 5, ELEMENT_TYPE_VOID, ELEMENT_TYPE_U1, ELEMENT_TYPE_U1, ELEMENT_TYPE_U4, ELEMENT_TYPE_U4, ELEMENT_TYPE_U4}
1141#define INTEROP_DEFAULTMEMBER_TYPE_W L"System.Reflection.DefaultMemberAttribute"
1142#define INTEROP_DEFAULTMEMBER_TYPE "System.Reflection.DefaultMemberAttribute"
1143#define INTEROP_DEFAULTMEMBER_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING}
1144#define INTEROP_DISPID_TYPE_W L"System.Runtime.InteropServices.DispIdAttribute"
1145#define INTEROP_DISPID_TYPE "System.Runtime.InteropServices.DispIdAttribute"
1146#define INTEROP_DISPID_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I4}
1147#define INTEROP_GUID_TYPE_W L"System.Runtime.InteropServices.GuidAttribute"
1148#define INTEROP_GUID_TYPE "System.Runtime.InteropServices.GuidAttribute"
1149#define INTEROP_GUID_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING}
1150#define INTEROP_IDISPATCHIMPL_TYPE_W L"System.Runtime.InteropServices.IDispatchImplAttribute"
1151#define INTEROP_IDISPATCHIMPL_TYPE "System.Runtime.InteropServices.IDispatchImplAttribute"
1152#define INTEROP_IDISPATCHIMPL_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2}
1153#define INTEROP_IDISPATCHVALUE_TYPE_W L"System.Runtime.CompilerServices.IDispatchConstantAttribute"
1154#define INTEROP_IDISPATCHVALUE_TYPE "System.Runtime.CompilerServices.IDispatchConstantAttribute"
1155#define INTEROP_IDISPATCHVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1156#define INTEROP_IMPORTEDFROMTYPELIB_TYPE_W L"System.Runtime.InteropServices.ImportedFromTypeLibAttribute"
1157#define INTEROP_IMPORTEDFROMTYPELIB_TYPE "System.Runtime.InteropServices.ImportedFromTypeLibAttribute"
1158#define INTEROP_IMPORTEDFROMTYPELIB_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING}
1159#define INTEROP_IN_TYPE_W L"System.Runtime.InteropServices.InAttribute"
1160#define INTEROP_IN_TYPE "System.Runtime.InteropServices.InAttribute"
1161#define INTEROP_IN_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1162#define INTEROP_INTERFACETYPE_TYPE_W L"System.Runtime.InteropServices.InterfaceTypeAttribute"
1163#define INTEROP_INTERFACETYPE_TYPE "System.Runtime.InteropServices.InterfaceTypeAttribute"
1164#define INTEROP_INTERFACETYPE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2}
1165#define INTEROP_IUNKNOWNVALUE_TYPE_W L"System.Runtime.CompilerServices.IUnknownConstantAttribute"
1166#define INTEROP_IUNKNOWNVALUE_TYPE "System.Runtime.CompilerServices.IUnknownConstantAttribute"
1167#define INTEROP_IUNKNOWNVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1168#define INTEROP_LCIDCONVERSION_TYPE_W L"System.Runtime.InteropServices.LCIDConversionAttribute"
1169#define INTEROP_LCIDCONVERSION_TYPE "System.Runtime.InteropServices.LCIDConversionAttribute"
1170#define INTEROP_LCIDCONVERSION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I4}
1171#define INTEROP_MARSHALAS_TYPE_W L"System.Runtime.InteropServices.MarshalAsAttribute"
1172#define INTEROP_MARSHALAS_TYPE "System.Runtime.InteropServices.MarshalAsAttribute"
1173#define INTEROP_MARSHALAS_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2}
1174#define INTEROP_OUT_TYPE_W L"System.Runtime.InteropServices.OutAttribute"
1175#define INTEROP_OUT_TYPE "System.Runtime.InteropServices.OutAttribute"
1176#define INTEROP_OUT_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1177#define INTEROP_PARAMARRAY_TYPE_W L"System.ParamArrayAttribute"
1178#define INTEROP_PARAMARRAY_TYPE "System.ParamArrayAttribute"
1179#define INTEROP_PARAMARRAY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1180#define INTEROP_PRESERVESIG_TYPE_W L"System.Runtime.InteropServices.PreserveSigAttribure"
1181#define INTEROP_PRESERVESIG_TYPE "System.Runtime.InteropServices.PreserveSigAttribure"
1182#define INTEROP_PRESERVESIG_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_BOOLEAN}
1183#define INTEROP_PRIMARYINTEROPASSEMBLY_TYPE_W L"System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute"
1184#define INTEROP_PRIMARYINTEROPASSEMBLY_TYPE "System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute"
1185#define INTEROP_PRIMARYINTEROPASSEMBLY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I4, ELEMENT_TYPE_I4}
1186#define INTEROP_SERIALIZABLE_TYPE_W L"System.SerializableAttribute"
1187#define INTEROP_SERIALIZABLE_TYPE "System.SerializableAttribute"
1188#define INTEROP_SERIALIZABLE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1189#define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_TYPE_W L"System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute"
1190#define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_TYPE "System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute"
1191#define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1192#define INTEROP_TYPELIBFUNC_TYPE_W L"System.Runtime.InteropServices.TypeLibFuncAttribute"
1193#define INTEROP_TYPELIBFUNC_TYPE "System.Runtime.InteropServices.TypeLibFuncAttribute"
1194#define INTEROP_TYPELIBIMPORTCLASS_TYPE_W L"System.Runtime.InteropServices.TypeLibImportClassAttribute"
1195#define INTEROP_TYPELIBIMPORTCLASS_TYPE "System.Runtime.InteropServices.TypeLibImportClassAttribute"
1196#define INTEROP_TYPELIBFUNC_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2}
1197#define INTEROP_TYPELIBTYPE_TYPE_W L"System.Runtime.InteropServices.TypeLibTypeAttribute"
1198#define INTEROP_TYPELIBTYPE_TYPE "System.Runtime.InteropServices.TypeLibTypeAttribute"
1199#define INTEROP_TYPELIBTYPE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2}
1200#define INTEROP_TYPELIBVAR_TYPE_W L"System.Runtime.InteropServices.TypeLibVarAttribute"
1201#define INTEROP_TYPELIBVAR_TYPE "System.Runtime.InteropServices.TypeLibVarAttribute"
1202#define INTEROP_TYPELIBVAR_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2}
1203#define INTEROP_TYPELIBVERSION_TYPE_W L"System.Runtime.InteropServices.TypeLibVersionAttribute"
1204#define INTEROP_TYPELIBVERSION_TYPE "System.Runtime.InteropServices.TypeLibVersionAttribute"
1205#define INTEROP_TYPELIBVERSION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2, ELEMENT_TYPE_I2}
1206
1207#define FORWARD_INTEROP_STUB_METHOD_TYPE_W L"System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute"
1208#define FORWARD_INTEROP_STUB_METHOD_TYPE "System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute"
1209
1210#define FRIEND_ACCESS_ALLOWED_ATTRIBUTE_TYPE_W L"System.Runtime.CompilerServices.FriendAccessAllowedAttribute"
1211#define FRIEND_ACCESS_ALLOWED_ATTRIBUTE_TYPE "System.Runtime.CompilerServices.FriendAccessAllowedAttribute"
1212#define FRIEND_ACCESS_ALLOWED_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1213#define FRIEND_ASSEMBLY_TYPE_W L"System.Runtime.CompilerServices.InternalsVisibleToAttribute"
1214#define FRIEND_ASSEMBLY_TYPE "System.Runtime.CompilerServices.InternalsVisibleToAttribute"
1215#define FRIEND_ASSEMBLY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING, ELEMENT_TYPE_BOOLEAN}
1216
1217#define DEFAULTDEPENDENCY_TYPE_W L"System.Runtime.CompilerServices.DefaultDependencyAttribute"
1218#define DEFAULTDEPENDENCY_TYPE "System.Runtime.CompilerServices.DefaultDependencyAttribute"
1219
1220#define DEFAULTDOMAIN_LOADEROPTIMIZATION_TYPE_W L"System.LoaderOptimizationAttribute"
1221#define DEFAULTDOMAIN_LOADEROPTIMIZATION_TYPE "System.LoaderOptimizationAttribute"
1222#define DEFAULTDOMAIN_LOADEROPTIMIZATION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I1}
1223#define DEFAULTDOMAIN_MTA_TYPE_W L"System.MTAThreadAttribute"
1224#define DEFAULTDOMAIN_MTA_TYPE "System.MTAThreadAttribute"
1225#define DEFAULTDOMAIN_MTA_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1226#define DEFAULTDOMAIN_STA_TYPE_W L"System.STAThreadAttribute"
1227#define DEFAULTDOMAIN_STA_TYPE "System.STAThreadAttribute"
1228#define DEFAULTDOMAIN_STA_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID}
1229
1230#define DEPENDENCY_TYPE_W L"System.Runtime.CompilerServices.DependencyAttribute"
1231#define DEPENDENCY_TYPE "System.Runtime.CompilerServices.DependencyAttribute"
1232
1233#define RUNTIMECOMPATIBILITY_TYPE_W L"System.Runtime.CompilerServices.RuntimeCompatibilityAttribute"
1234#define RUNTIMECOMPATIBILITY_TYPE "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute"
1235
1236#define TARGET_FRAMEWORK_TYPE_W L"System.Runtime.Versioning.TargetFrameworkAttribute"
1237#define TARGET_FRAMEWORK_TYPE "System.Runtime.Versioning.TargetFrameworkAttribute"
1238
1239#define TARGETEDPATCHBAND_W L"System.Runtime.AssemblyTargetedPatchBandAttribute"
1240#define TARGETEDPATCHBAND "System.Runtime.AssemblyTargetedPatchBandAttribute"
1241#define TARGETEDPATCHOPTOUT_W L"System.Runtime.TargetedPatchingOptOutAttribute"
1242#define TARGETEDPATCHOPTOUT "System.Runtime.TargetedPatchingOptOutAttribute"
1243
1244#define COMPILATIONRELAXATIONS_TYPE_W L"System.Runtime.CompilerServices.CompilationRelaxationsAttribute"
1245#define COMPILATIONRELAXATIONS_TYPE "System.Runtime.CompilerServices.CompilationRelaxationsAttribute"
1246
1247#ifdef __cplusplus
1248}
1249#endif
1250
1251#endif
Note: See TracBrowser for help on using the repository browser.