|  | /** | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER within this package. | 
|  | */ | 
|  | #ifndef __CORHDR_H__ | 
|  | #define __CORHDR_H__ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | typedef enum CorTypeAttr { | 
|  | tdVisibilityMask = 0x7, | 
|  | tdNotPublic = 0x0, | 
|  | tdPublic = 0x1, | 
|  | tdNestedPublic = 0x2, | 
|  | tdNestedPrivate = 0x3, | 
|  | tdNestedFamily = 0x4, | 
|  | tdNestedAssembly = 0x5, | 
|  | tdNestedFamANDAssem = 0x6, | 
|  | tdNestedFamORAssem = 0x7, | 
|  | tdLayoutMask = 0x18, | 
|  | tdAutoLayout = 0x0, | 
|  | tdSequentialLayout = 0x8, | 
|  | tdExplicitLayout = 0x10, | 
|  | tdClassSemanticsMask = 0x20, | 
|  | tdClass = 0x0, | 
|  | tdInterface = 0x20, | 
|  | tdAbstract = 0x80, | 
|  | tdSealed = 0x100, | 
|  | tdSpecialName = 0x400, | 
|  | tdImport = 0x1000, | 
|  | tdSerializable = 0x2000, | 
|  | tdWindowsRuntime = 0x4000, | 
|  | tdStringFormatMask = 0x30000, | 
|  | tdAnsiClass = 0x0, | 
|  | tdUnicodeClass = 0x10000, | 
|  | tdAutoClass = 0x20000, | 
|  | tdCustomFormatClass = 0x30000, | 
|  | tdCustomFormatMask = 0xc00000, | 
|  | tdBeforeFieldInit = 0x100000, | 
|  | tdForwarder = 0x200000, | 
|  | tdReservedMask = 0x40800, | 
|  | tdRTSpecialName = 0x800, | 
|  | tdHasSecurity = 0x40000, | 
|  | } CorTypeAttr; | 
|  |  | 
|  | typedef enum CorMethodAttr { | 
|  | mdMemberAccessMask = 0x0007, | 
|  | mdPrivateScope = 0x0, | 
|  | mdPrivate = 0x1, | 
|  | mdFamANDAssem = 0x2, | 
|  | mdAssem = 0x3, | 
|  | mdFamily = 0x4, | 
|  | mdFamORAssem = 0x5, | 
|  | mdPublic = 0x6, | 
|  | mdUnmanagedExport = 0x8, | 
|  | mdStatic = 0x10, | 
|  | mdFinal = 0x20, | 
|  | mdVirtual = 0x40, | 
|  | mdHideBySig = 0x80, | 
|  | mdVtableLayoutMask = 0x100, | 
|  | mdReuseSlot = 0x0, | 
|  | mdNewSlot = 0x100, | 
|  | mdCheckAccessOnOverride = 0x200, | 
|  | mdAbstract = 0x400, | 
|  | mdSpecialName = 0x800, | 
|  | mdPinvokeImpl = 0x2000, | 
|  | mdReservedMask = 0xd000, | 
|  | mdRTSpecialName = 0x1000, | 
|  | mdHasSecurity = 0x4000, | 
|  | mdRequireSecObject = 0x8000 | 
|  | } CorMethodAttr; | 
|  |  | 
|  | #ifndef __IMAGE_COR20_HEADER_DEFINED__ | 
|  | #define __IMAGE_COR20_HEADER_DEFINED__ | 
|  | typedef enum ReplacesCorHdrNumericDefines { | 
|  | COMIMAGE_FLAGS_ILONLY = 0x1, | 
|  | COMIMAGE_FLAGS_32BITREQUIRED = 0x2, | 
|  | COMIMAGE_FLAGS_IL_LIBRARY = 0x4, | 
|  | COMIMAGE_FLAGS_STRONGNAMESIGNED = 0x8, | 
|  | COMIMAGE_FLAGS_NATIVE_ENTRYPOINT = 0x10, | 
|  | COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x10000, | 
|  | COMIMAGE_FLAGS_32BITPREFERRED = 0x20000, | 
|  | COR_VERSION_MAJOR_V2 = 2, | 
|  | COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2, | 
|  | COR_VERSION_MINOR = 5, | 
|  | COR_DELETED_NAME_LENGTH = 8, | 
|  | COR_VTABLEGAP_NAME_LENGTH = 8, | 
|  | NATIVE_TYPE_MAX_CB = 1, | 
|  | COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 0xff, | 
|  | COR_VTABLE_32BIT = 0x1, | 
|  | COR_VTABLE_64BIT = 0x2, | 
|  | COR_VTABLE_FROM_UNMANAGED = 0x4, | 
|  | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN = 0x8, | 
|  | COR_VTABLE_CALL_MOST_DERIVED = 0x10, | 
|  | MAX_CLASS_NAME = 1024, | 
|  | MAX_PACKAGE_NAME = 1024 | 
|  | } ReplacesCorHdrNumericDefines; | 
|  |  | 
|  | typedef struct IMAGE_COR20_HEADER { | 
|  | DWORD cb; | 
|  | WORD MajorRuntimeVersion; | 
|  | WORD MinorRuntimeVersion; | 
|  | IMAGE_DATA_DIRECTORY MetaData; | 
|  | DWORD Flags; | 
|  | __C89_NAMELESS union { | 
|  | DWORD EntryPointToken; | 
|  | DWORD EntryPointRVA; | 
|  | }; | 
|  | IMAGE_DATA_DIRECTORY Resources; | 
|  | IMAGE_DATA_DIRECTORY StrongNameSignature; | 
|  | IMAGE_DATA_DIRECTORY CodeManagerTable; | 
|  | IMAGE_DATA_DIRECTORY VTableFixups; | 
|  | IMAGE_DATA_DIRECTORY ExportAddressTableJumps; | 
|  | IMAGE_DATA_DIRECTORY ManagedNativeHeader; | 
|  | } IMAGE_COR20_HEADER,*PIMAGE_COR20_HEADER; | 
|  | #else | 
|  | #define COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN 0x8 | 
|  | #define COMIMAGE_FLAGS_32BITPREFERRED 0x20000 | 
|  | #endif | 
|  |  | 
|  | typedef enum CorFieldAttr { | 
|  | fdFieldAccessMask = 0x0007, | 
|  | fdPrivateScope = 0x0000, | 
|  | fdPrivate = 0x0001, | 
|  | fdFamANDAssem = 0x0002, | 
|  | fdAssembly = 0x0003, | 
|  | fdFamily = 0x0004, | 
|  | fdFamORAssem = 0x0005, | 
|  | fdPublic = 0x0006, | 
|  |  | 
|  | fdStatic = 0x0010, | 
|  | fdInitOnly = 0x0020, | 
|  | fdLiteral = 0x0040, | 
|  | fdNotSerialized = 0x0080, | 
|  | fdHasFieldRVA = 0x0100, | 
|  | fdSpecialName = 0x0200, | 
|  | fdRTSpecialName = 0x0400, | 
|  | fdHasFieldMarshal = 0x1000, | 
|  | fdPinvokeImpl = 0x2000, | 
|  | fdHasDefault = 0x8000, | 
|  | fdReservedMask = 0x9500 | 
|  | } CorFieldAttr; | 
|  |  | 
|  | typedef enum CorParamAttr { | 
|  | pdIn = 0x1, | 
|  | pdOut = 0x2, | 
|  | pdOptional = 0x10, | 
|  | pdReservedMask = 0xf000, | 
|  | pdHasDefault = 0x1000, | 
|  | pdHasFieldMarshal = 0x2000, | 
|  | pdUnused = 0xcfe0 | 
|  | } CorParamAttr; | 
|  |  | 
|  | typedef enum CorPropertyAttr { | 
|  | prReservedMask = 0xf400, | 
|  | prSpecialName = 0x0200, | 
|  | prRTSpecialName = 0x0400, | 
|  | prHasDefault = 0x1000, | 
|  | prUnused = 0xe9ff | 
|  | } CorPropertyAttr; | 
|  |  | 
|  | typedef enum CorEventAttr { | 
|  | evSpecialName = 0x0200, | 
|  | evReservedMask = 0x0400, | 
|  | evRTSpecialName = 0x0400, | 
|  | } CorEventAttr; | 
|  |  | 
|  | typedef enum CorMethodSemanticsAttr { | 
|  | msSetter = 0x1, | 
|  | msGetter = 0x2, | 
|  | msOther = 0x4, | 
|  | msAddOn = 0x8, | 
|  | msRemoveOn = 0x10, | 
|  | msFire = 0x20 | 
|  | } CorMethodSemanticsAttr; | 
|  |  | 
|  | typedef enum CorDeclSecurity { | 
|  | dclActionMask = 0x001f, | 
|  | dclActionNil = 0x0000, | 
|  | dclRequest = 0x0001, | 
|  | dclDemand = 0x0002, | 
|  | dclAssert = 0x0003, | 
|  | dclDeny = 0x0004, | 
|  | dclPermitOnly = 0x0005, | 
|  | dclLinktimeCheck = 0x0006, | 
|  | dclInheritanceCheck = 0x0007, | 
|  | dclRequestMinimum = 0x0008, | 
|  | dclRequestOptional = 0x0009, | 
|  | dclRequestRefuse = 0x000a, | 
|  | dclPrejitGrant = 0x000b, | 
|  | dclPrejitDenied = 0x000c, | 
|  | dclNonCasDemand = 0x000d, | 
|  | dclNonCasLinkDemand = 0x000e, | 
|  | dclNonCasInheritance = 0x000f, | 
|  | dclMaximumValue = 0x000f | 
|  | } CorDeclSecurity; | 
|  |  | 
|  | typedef enum CorMethodImpl { | 
|  | miCodeTypeMask = 0x0003, | 
|  | miIL = 0x0000, | 
|  | miNative = 0x0001, | 
|  | miOPTIL = 0x0002, | 
|  | miRuntime = 0x0003, | 
|  | miManagedMask = 0x0004, | 
|  | miUnmanaged = 0x0004, | 
|  | miManaged = 0x0, | 
|  | miNoInlining = 0x0008, | 
|  | miForwardRef = 0x0010, | 
|  | miSynchronized = 0x0020, | 
|  | miNoOptimization = 0x0040, | 
|  | miPreserveSig = 0x0080, | 
|  | miAggressiveInlining = 0x0100, | 
|  | miInternalCall = 0x1000, | 
|  | miUserMask = miManagedMask | miForwardRef | miPreserveSig | miInternalCall | miSynchronized | miNoInlining | miAggressiveInlining | miNoOptimization, | 
|  | miMaxMethodImplVal = 0xffff | 
|  | } CorMethodImpl; | 
|  |  | 
|  | typedef enum CorPinvokeMap { | 
|  | pmNoMangle = 0x0001, | 
|  | pmCharSetMask = 0x0006, | 
|  | pmCharSetNotSpec = 0x0, | 
|  | pmCharSetAnsi = 0x0002, | 
|  | pmCharSetUnicode = 0x0004, | 
|  | pmCharSetAuto = 0x0006, | 
|  | pmBestFitMask = 0x0030, | 
|  | pmBestFitUseAssem = 0x0, | 
|  | pmBestFitEnabled = 0x0010, | 
|  | pmBestFitDisabled = 0x0020, | 
|  | pmSupportsLastError = 0x0040, | 
|  | pmCallConvMask = 0x0700, | 
|  | pmCallConvWinapi = 0x0100, | 
|  | pmCallConvCdecl = 0x0200, | 
|  | pmCallConvStdcall = 0x0300, | 
|  | pmCallConvThiscall = 0x0400, | 
|  | pmCallConvFastcall = 0x0500, | 
|  | pmThrowOnUnmappableCharMask = 0x3000, | 
|  | pmThrowOnUnmappableCharUseAssem = 0x0, | 
|  | pmThrowOnUnmappableCharEnabled = 0x1000, | 
|  | pmThrowOnUnmappableCharDisabled = 0x2000, | 
|  | pmMaxValue = 0xffff | 
|  | } CorPinvokeMap; | 
|  |  | 
|  | typedef enum CorAssemblyFlags { | 
|  | afPublicKey = 0x0001, | 
|  | afPA_Mask = 0x0070, | 
|  | afPA_FullMask = 0x00f0, | 
|  | afPA_None = 0x0, | 
|  | afPA_MSIL = 0x0010, | 
|  | afPA_x86 = 0x0020, | 
|  | afPA_IA64 = 0x0030, | 
|  | afPA_AMD64 = 0x0040, | 
|  | afPA_ARM = 0x0050, | 
|  | afPA_NoPlatform = 0x0070, | 
|  | afPA_Specified = 0x0080, | 
|  | afPA_Shift = 0x0004, | 
|  | afRetargetable = 0x0100, | 
|  | afContentType_Mask = 0x0e00, | 
|  | afContentType_Default = 0x0, | 
|  | afContentType_WindowsRuntime = 0x0200, | 
|  | afEnableJITcompileTracking = 0x8000, | 
|  | afDisableJITcompileOptimizer = 0x4000 | 
|  | } CorAssemblyFlags; | 
|  |  | 
|  | typedef enum CorManifestResourceFlags { | 
|  | mrVisibilityMask = 0x0007, | 
|  | mrPublic = 0x0001, | 
|  | mrPrivate = 0x0002, | 
|  | } CorManifestResourceFlags; | 
|  |  | 
|  | typedef enum CorFileFlags { | 
|  | ffContainsMetaData = 0x0000, | 
|  | ffContainsNoMetaData = 0x0001, | 
|  | } CorFileFlags; | 
|  |  | 
|  | typedef enum CorPEKind { | 
|  | peNot = 0x00000000, | 
|  | peILonly = 0x00000001, | 
|  | pe32BitRequired=0x00000002, | 
|  | pe32Plus = 0x00000004, | 
|  | pe32Unmanaged=0x00000008, | 
|  | pe32BitPreferred=0x00000010 | 
|  | } CorPEKind; | 
|  |  | 
|  | typedef enum CorGenericParamAttr { | 
|  | gpVarianceMask = 0x0003, | 
|  | gpNonVariant = 0x0000, | 
|  | gpCovariant = 0x0001, | 
|  | gpContravariant = 0x0002, | 
|  | gpSpecialConstraintMask = 0x001c, | 
|  | gpNoSpecialConstraint = 0x0000, | 
|  | gpReferenceTypeConstraint = 0x0004, | 
|  | gpNotNullableValueTypeConstraint = 0x0008, | 
|  | gpDefaultConstructorConstraint = 0x0010 | 
|  | } CorGenericParamAttr; | 
|  |  | 
|  | typedef enum CorElementType { | 
|  | ELEMENT_TYPE_END = 0x00, | 
|  | ELEMENT_TYPE_VOID = 0x01, | 
|  | ELEMENT_TYPE_BOOLEAN = 0x02, | 
|  | ELEMENT_TYPE_CHAR = 0x03, | 
|  | ELEMENT_TYPE_I1 = 0x04, | 
|  | ELEMENT_TYPE_U1 = 0x05, | 
|  | ELEMENT_TYPE_I2 = 0x06, | 
|  | ELEMENT_TYPE_U2 = 0x07, | 
|  | ELEMENT_TYPE_I4 = 0x08, | 
|  | ELEMENT_TYPE_U4 = 0x09, | 
|  | ELEMENT_TYPE_I8 = 0x0a, | 
|  | ELEMENT_TYPE_U8 = 0x0b, | 
|  | ELEMENT_TYPE_R4 = 0x0c, | 
|  | ELEMENT_TYPE_R8 = 0x0d, | 
|  | ELEMENT_TYPE_STRING = 0x0e, | 
|  | ELEMENT_TYPE_PTR = 0x0f, | 
|  | ELEMENT_TYPE_BYREF = 0x10, | 
|  | ELEMENT_TYPE_VALUETYPE = 0x11, | 
|  | ELEMENT_TYPE_CLASS = 0x12, | 
|  | ELEMENT_TYPE_VAR = 0x13, | 
|  | ELEMENT_TYPE_ARRAY = 0x14, | 
|  | ELEMENT_TYPE_GENERICINST = 0x15, | 
|  | ELEMENT_TYPE_TYPEDBYREF = 0x16, | 
|  | ELEMENT_TYPE_I = 0x18, | 
|  | ELEMENT_TYPE_U = 0x19, | 
|  | ELEMENT_TYPE_FNPTR = 0x1b, | 
|  | ELEMENT_TYPE_OBJECT = 0x1c, | 
|  | ELEMENT_TYPE_SZARRAY = 0x1d, | 
|  | ELEMENT_TYPE_MVAR = 0x1e, | 
|  | ELEMENT_TYPE_CMOD_REQD = 0x1f, | 
|  | ELEMENT_TYPE_CMOD_OPT = 0x20, | 
|  | ELEMENT_TYPE_INTERNAL = 0x21, | 
|  | ELEMENT_TYPE_MAX = 0x22, | 
|  | ELEMENT_TYPE_MODIFIER = 0x40, | 
|  | ELEMENT_TYPE_SENTINEL = 0x01 | ELEMENT_TYPE_MODIFIER, | 
|  | ELEMENT_TYPE_PINNED = 0x05 | ELEMENT_TYPE_MODIFIER, | 
|  | } CorElementType; | 
|  |  | 
|  | typedef enum CorSerializationType { | 
|  | SERIALIZATION_TYPE_UNDEFINED = 0, | 
|  | SERIALIZATION_TYPE_BOOLEAN = ELEMENT_TYPE_BOOLEAN, | 
|  | SERIALIZATION_TYPE_CHAR = ELEMENT_TYPE_CHAR, | 
|  | SERIALIZATION_TYPE_I1 = ELEMENT_TYPE_I1, | 
|  | SERIALIZATION_TYPE_U1 = ELEMENT_TYPE_U1, | 
|  | SERIALIZATION_TYPE_I2 = ELEMENT_TYPE_I2, | 
|  | SERIALIZATION_TYPE_U2 = ELEMENT_TYPE_U2, | 
|  | SERIALIZATION_TYPE_I4 = ELEMENT_TYPE_I4, | 
|  | SERIALIZATION_TYPE_U4 = ELEMENT_TYPE_U4, | 
|  | SERIALIZATION_TYPE_I8 = ELEMENT_TYPE_I8, | 
|  | SERIALIZATION_TYPE_U8 = ELEMENT_TYPE_U8, | 
|  | SERIALIZATION_TYPE_R4 = ELEMENT_TYPE_R4, | 
|  | SERIALIZATION_TYPE_R8 = ELEMENT_TYPE_R8, | 
|  | SERIALIZATION_TYPE_STRING = ELEMENT_TYPE_STRING, | 
|  | SERIALIZATION_TYPE_SZARRAY = ELEMENT_TYPE_SZARRAY, | 
|  | SERIALIZATION_TYPE_TYPE = 0x50, | 
|  | SERIALIZATION_TYPE_TAGGED_OBJECT= 0x51, | 
|  | SERIALIZATION_TYPE_FIELD = 0x53, | 
|  | SERIALIZATION_TYPE_PROPERTY = 0x54, | 
|  | SERIALIZATION_TYPE_ENUM = 0x55 | 
|  | } CorSerializationType; | 
|  |  | 
|  | typedef enum CorCallingConvention { | 
|  | IMAGE_CEE_CS_CALLCONV_DEFAULT = 0x0, | 
|  | IMAGE_CEE_CS_CALLCONV_VARARG = 0x5, | 
|  | IMAGE_CEE_CS_CALLCONV_FIELD = 0x6, | 
|  | IMAGE_CEE_CS_CALLCONV_LOCAL_SIG = 0x7, | 
|  | IMAGE_CEE_CS_CALLCONV_PROPERTY = 0x8, | 
|  | IMAGE_CEE_CS_CALLCONV_UNMGD = 0x9, | 
|  | IMAGE_CEE_CS_CALLCONV_GENERICINST = 0xa, | 
|  | IMAGE_CEE_CS_CALLCONV_NATIVEVARARG = 0xb, | 
|  | IMAGE_CEE_CS_CALLCONV_MAX = 0xc, | 
|  | IMAGE_CEE_CS_CALLCONV_MASK = 0x0f, | 
|  | IMAGE_CEE_CS_CALLCONV_HASTHIS = 0x20, | 
|  | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS = 0x40, | 
|  | IMAGE_CEE_CS_CALLCONV_GENERIC = 0x10, | 
|  | } CorCallingConvention; | 
|  |  | 
|  | typedef enum CorUnmanagedCallingConvention { | 
|  | IMAGE_CEE_UNMANAGED_CALLCONV_C = 0x1, | 
|  | IMAGE_CEE_UNMANAGED_CALLCONV_STDCALL = 0x2, | 
|  | IMAGE_CEE_UNMANAGED_CALLCONV_THISCALL = 0x3, | 
|  | IMAGE_CEE_UNMANAGED_CALLCONV_FASTCALL = 0x4, | 
|  | IMAGE_CEE_CS_CALLCONV_C = IMAGE_CEE_UNMANAGED_CALLCONV_C, | 
|  | IMAGE_CEE_CS_CALLCONV_STDCALL = IMAGE_CEE_UNMANAGED_CALLCONV_STDCALL, | 
|  | IMAGE_CEE_CS_CALLCONV_THISCALL = IMAGE_CEE_UNMANAGED_CALLCONV_THISCALL, | 
|  | IMAGE_CEE_CS_CALLCONV_FASTCALL = IMAGE_CEE_UNMANAGED_CALLCONV_FASTCALL, | 
|  | } CorUnmanagedCallingConvention; | 
|  |  | 
|  | typedef enum CorArgType { | 
|  | IMAGE_CEE_CS_END = 0x0, | 
|  | IMAGE_CEE_CS_VOID = 0x1, | 
|  | IMAGE_CEE_CS_I4 = 0x2, | 
|  | IMAGE_CEE_CS_I8 = 0x3, | 
|  | IMAGE_CEE_CS_R4 = 0x4, | 
|  | IMAGE_CEE_CS_R8 = 0x5, | 
|  | IMAGE_CEE_CS_PTR = 0x6, | 
|  | IMAGE_CEE_CS_OBJECT = 0x7, | 
|  | IMAGE_CEE_CS_STRUCT4 = 0x8, | 
|  | IMAGE_CEE_CS_STRUCT32 = 0x9, | 
|  | IMAGE_CEE_CS_BYVALUE = 0xa, | 
|  | } CorArgType; | 
|  |  | 
|  | typedef enum CorNativeType { | 
|  | NATIVE_TYPE_END = 0x0, | 
|  | NATIVE_TYPE_VOID = 0x1, | 
|  | NATIVE_TYPE_BOOLEAN = 0x2, | 
|  | NATIVE_TYPE_I1 = 0x3, | 
|  | NATIVE_TYPE_U1 = 0x4, | 
|  | NATIVE_TYPE_I2 = 0x5, | 
|  | NATIVE_TYPE_U2 = 0x6, | 
|  | NATIVE_TYPE_I4 = 0x7, | 
|  | NATIVE_TYPE_U4 = 0x8, | 
|  | NATIVE_TYPE_I8 = 0x9, | 
|  | NATIVE_TYPE_U8 = 0xa, | 
|  | NATIVE_TYPE_R4 = 0xb, | 
|  | NATIVE_TYPE_R8 = 0xc, | 
|  | NATIVE_TYPE_SYSCHAR = 0xd, | 
|  | NATIVE_TYPE_VARIANT = 0xe, | 
|  | NATIVE_TYPE_CURRENCY = 0xf, | 
|  | NATIVE_TYPE_PTR = 0x10, | 
|  | NATIVE_TYPE_DECIMAL = 0x11, | 
|  | NATIVE_TYPE_DATE = 0x12, | 
|  | NATIVE_TYPE_BSTR = 0x13, | 
|  | NATIVE_TYPE_LPSTR = 0x14, | 
|  | NATIVE_TYPE_LPWSTR = 0x15, | 
|  | NATIVE_TYPE_LPTSTR = 0x16, | 
|  | NATIVE_TYPE_FIXEDSYSSTRING = 0x17, | 
|  | NATIVE_TYPE_OBJECTREF = 0x18, | 
|  | NATIVE_TYPE_IUNKNOWN = 0x19, | 
|  | NATIVE_TYPE_IDISPATCH = 0x1a, | 
|  | NATIVE_TYPE_STRUCT = 0x1b, | 
|  | NATIVE_TYPE_INTF = 0x1c, | 
|  | NATIVE_TYPE_SAFEARRAY = 0x1d, | 
|  | NATIVE_TYPE_FIXEDARRAY = 0x1e, | 
|  | NATIVE_TYPE_INT = 0x1f, | 
|  | NATIVE_TYPE_UINT = 0x20, | 
|  | NATIVE_TYPE_NESTEDSTRUCT = 0x21, | 
|  | NATIVE_TYPE_BYVALSTR = 0x22, | 
|  | NATIVE_TYPE_ANSIBSTR = 0x23, | 
|  | NATIVE_TYPE_TBSTR = 0x24, | 
|  | NATIVE_TYPE_VARIANTBOOL = 0x25, | 
|  | NATIVE_TYPE_FUNC = 0x26, | 
|  | NATIVE_TYPE_ASANY = 0x28, | 
|  | NATIVE_TYPE_ARRAY = 0x2a, | 
|  | NATIVE_TYPE_LPSTRUCT = 0x2b, | 
|  | NATIVE_TYPE_CUSTOMMARSHALER = 0x2c, | 
|  | NATIVE_TYPE_ERROR = 0x2d, | 
|  | NATIVE_TYPE_IINSPECTABLE = 0x2e, | 
|  | NATIVE_TYPE_HSTRING = 0x2f, | 
|  | NATIVE_TYPE_MAX = 0x50 | 
|  | } CorNativeType; | 
|  |  | 
|  | typedef enum CorDescrGroupMethodType { | 
|  | DESCR_GROUP_METHODDEF = 0, | 
|  | DESCR_GROUP_METHODIMPL = 1 | 
|  | } CorDescrGroupMethodType; | 
|  |  | 
|  | typedef enum CorILMethodSect { | 
|  | CorILMethod_Sect_KindMask = 0x3f, | 
|  | CorILMethod_Sect_Reserved = 0, | 
|  | CorILMethod_Sect_EHTable = 1, | 
|  | CorILMethod_Sect_OptILTable = 2, | 
|  | CorILMethod_Sect_FatFormat = 0x40, | 
|  | CorILMethod_Sect_MoreSects = 0x80 | 
|  | } CorILMethodSect; | 
|  |  | 
|  | typedef enum CorILMethodFlags { | 
|  | CorILMethod_InitLocals = 0x0010, | 
|  | CorILMethod_MoreSects = 0x0008, | 
|  | CorILMethod_CompressedIL = 0x0040, | 
|  | CorILMethod_FormatShift = 3, | 
|  | CorILMethod_FormatMask = 0x0007, | 
|  | CorILMethod_SmallFormat = 0x0, | 
|  | CorILMethod_TinyFormat = 0x0002, | 
|  | CorILMethod_FatFormat = 0x0003, | 
|  | CorILMethod_TinyFormat1 = 0x0006, | 
|  | } CorILMethodFlags; | 
|  |  | 
|  | typedef enum CorExceptionFlag { | 
|  | COR_ILEXCEPTION_CLAUSE_NONE, | 
|  | COR_ILEXCEPTION_CLAUSE_OFFSETLEN = 0x0, | 
|  | COR_ILEXCEPTION_CLAUSE_DEPRECATED = 0x0, | 
|  | COR_ILEXCEPTION_CLAUSE_FILTER = 0x1, | 
|  | COR_ILEXCEPTION_CLAUSE_FINALLY = 0x2, | 
|  | COR_ILEXCEPTION_CLAUSE_FAULT = 0x4, | 
|  | COR_ILEXCEPTION_CLAUSE_DUPLICATED = 0x8 | 
|  | } CorExceptionFlag; | 
|  |  | 
|  | typedef enum CorCheckDuplicatesFor { | 
|  | MDDupAll = 0xffffffff, | 
|  | MDDupENC = MDDupAll, | 
|  | MDNoDupChecks = 0x00000000, | 
|  | MDDupTypeDef = 0x00000001, | 
|  | MDDupInterfaceImpl = 0x00000002, | 
|  | MDDupMethodDef = 0x00000004, | 
|  | MDDupTypeRef = 0x00000008, | 
|  | MDDupMemberRef = 0x00000010, | 
|  | MDDupCustomAttribute = 0x00000020, | 
|  | MDDupParamDef = 0x00000040, | 
|  | MDDupPermission = 0x00000080, | 
|  | MDDupProperty = 0x00000100, | 
|  | MDDupEvent = 0x00000200, | 
|  | MDDupFieldDef = 0x00000400, | 
|  | MDDupSignature = 0x00000800, | 
|  | MDDupModuleRef = 0x00001000, | 
|  | MDDupTypeSpec = 0x00002000, | 
|  | MDDupImplMap = 0x00004000, | 
|  | MDDupAssemblyRef = 0x00008000, | 
|  | MDDupFile = 0x00010000, | 
|  | MDDupExportedType = 0x00020000, | 
|  | MDDupManifestResource = 0x00040000, | 
|  | MDDupGenericParam = 0x00080000, | 
|  | MDDupMethodSpec = 0x00100000, | 
|  | MDDupGenericParamConstraint = 0x00200000, | 
|  | MDDupAssembly = 0x10000000, | 
|  | MDDupDefault = MDNoDupChecks | MDDupTypeRef | MDDupMemberRef | MDDupSignature | MDDupTypeSpec | MDDupMethodSpec | 
|  | } CorCheckDuplicatesFor; | 
|  |  | 
|  | typedef enum CorRefToDefCheck { | 
|  | MDRefToDefDefault = 0x00000003, | 
|  | MDRefToDefAll = 0xffffffff, | 
|  | MDRefToDefNone = 0x00000000, | 
|  | MDTypeRefToDef = 0x00000001, | 
|  | MDMemberRefToDef = 0x00000002 | 
|  | } CorRefToDefCheck; | 
|  |  | 
|  | typedef enum CorNotificationForTokenMovement { | 
|  | MDNotifyDefault = 0x0000000f, | 
|  | MDNotifyAll = 0xffffffff, | 
|  | MDNotifyNone = 0x00000000, | 
|  | MDNotifyMethodDef = 0x00000001, | 
|  | MDNotifyMemberRef = 0x00000002, | 
|  | MDNotifyFieldDef = 0x00000004, | 
|  | MDNotifyTypeRef = 0x00000008, | 
|  | MDNotifyTypeDef = 0x00000010, | 
|  | MDNotifyParamDef = 0x00000020, | 
|  | MDNotifyInterfaceImpl = 0x00000040, | 
|  | MDNotifyProperty = 0x00000080, | 
|  | MDNotifyEvent = 0x00000100, | 
|  | MDNotifySignature = 0x00000200, | 
|  | MDNotifyTypeSpec = 0x00000400, | 
|  | MDNotifyCustomAttribute = 0x00000800, | 
|  | MDNotifySecurityValue = 0x00001000, | 
|  | MDNotifyPermission = 0x00002000, | 
|  | MDNotifyModuleRef = 0x00004000, | 
|  | MDNotifyNameSpace = 0x00008000, | 
|  | MDNotifyAssemblyRef = 0x01000000, | 
|  | MDNotifyFile = 0x02000000, | 
|  | MDNotifyExportedType = 0x04000000, | 
|  | MDNotifyResource = 0x08000000 | 
|  | } CorNotificationForTokenMovement; | 
|  |  | 
|  | typedef enum CorSetENC { | 
|  | MDSetENCOn = 0x00000001, | 
|  | MDSetENCOff = 0x00000002, | 
|  | MDUpdateENC = 0x00000001, | 
|  | MDUpdateFull = 0x00000002, | 
|  | MDUpdateExtension = 0x00000003, | 
|  | MDUpdateIncremental = 0x00000004, | 
|  | MDUpdateDelta = 0x00000005, | 
|  | MDUpdateMask = 0x00000007, | 
|  | } CorSetENC; | 
|  |  | 
|  | typedef enum CorErrorIfEmitOutOfOrder { | 
|  | MDErrorOutOfOrderDefault = 0x00000000, | 
|  | MDErrorOutOfOrderNone = 0x00000000, | 
|  | MDErrorOutOfOrderAll = 0xffffffff, | 
|  | MDMethodOutOfOrder = 0x00000001, | 
|  | MDFieldOutOfOrder = 0x00000002, | 
|  | MDParamOutOfOrder = 0x00000004, | 
|  | MDPropertyOutOfOrder = 0x00000008, | 
|  | MDEventOutOfOrder = 0x00000010, | 
|  | } CorErrorIfEmitOutOfOrder; | 
|  |  | 
|  | typedef enum CorImportOptions { | 
|  | MDImportOptionDefault = 0x00000000, | 
|  | MDImportOptionAll = 0xffffffff, | 
|  | MDImportOptionAllTypeDefs = 0x00000001, | 
|  | MDImportOptionAllMethodDefs = 0x00000002, | 
|  | MDImportOptionAllFieldDefs = 0x00000004, | 
|  | MDImportOptionAllProperties = 0x00000008, | 
|  | MDImportOptionAllEvents = 0x00000010, | 
|  | MDImportOptionAllCustomAttributes = 0x00000020, | 
|  | MDImportOptionAllExportedTypes = 0x00000040 | 
|  | } CorImportOptions; | 
|  |  | 
|  | typedef enum CorThreadSafetyOptions { | 
|  | MDThreadSafetyDefault = 0x00000000, | 
|  | MDThreadSafetyOff = 0x00000000, | 
|  | MDThreadSafetyOn = 0x00000001 | 
|  | } CorThreadSafetyOptions; | 
|  |  | 
|  | typedef enum CorLinkerOptions { | 
|  | MDAssembly = 0x00000000, | 
|  | MDNetModule = 0x00000001 | 
|  | } CorLinkerOptions; | 
|  |  | 
|  | typedef enum MergeFlags { | 
|  | MergeFlagsNone = 0, | 
|  | MergeManifest = 0x00000001, | 
|  | DropMemberRefCAs = 0x00000002, | 
|  | NoDupCheck = 0x00000004, | 
|  | MergeExportedTypes = 0x00000008 | 
|  | } MergeFlags; | 
|  |  | 
|  | typedef enum CorLocalRefPreservation { | 
|  | MDPreserveLocalRefsNone = 0x00000000, | 
|  | MDPreserveLocalTypeRef = 0x00000001, | 
|  | MDPreserveLocalMemberRef = 0x00000002 | 
|  | } CorLocalRefPreservation; | 
|  |  | 
|  | typedef enum CorTokenType { | 
|  | mdtModule = 0x00000000, | 
|  | mdtTypeRef = 0x01000000, | 
|  | mdtTypeDef = 0x02000000, | 
|  | mdtFieldDef = 0x04000000, | 
|  | mdtMethodDef = 0x06000000, | 
|  | mdtParamDef = 0x08000000, | 
|  | mdtInterfaceImpl = 0x09000000, | 
|  | mdtMemberRef = 0x0a000000, | 
|  | mdtCustomAttribute = 0x0c000000, | 
|  | mdtPermission = 0x0e000000, | 
|  | mdtSignature = 0x11000000, | 
|  | mdtEvent = 0x14000000, | 
|  | mdtProperty = 0x17000000, | 
|  | mdtMethodImpl = 0x19000000, | 
|  | mdtModuleRef = 0x1a000000, | 
|  | mdtTypeSpec = 0x1b000000, | 
|  | mdtAssembly = 0x20000000, | 
|  | mdtAssemblyRef = 0x23000000, | 
|  | mdtFile = 0x26000000, | 
|  | mdtExportedType = 0x27000000, | 
|  | mdtManifestResource = 0x28000000, | 
|  | mdtGenericParam = 0x2a000000, | 
|  | mdtMethodSpec = 0x2b000000, | 
|  | mdtGenericParamConstraint = 0x2c000000, | 
|  | mdtString = 0x70000000, | 
|  | mdtName = 0x71000000, | 
|  | mdtBaseType = 0x72000000, | 
|  | } CorTokenType; | 
|  |  | 
|  | typedef enum CorOpenFlags { | 
|  | ofReadWriteMask = 0x00000001, | 
|  | ofRead = 0x00000000, | 
|  | ofWrite = 0x00000001, | 
|  | ofCopyMemory = 0x00000002, | 
|  | ofReadOnly = 0x00000010, | 
|  | ofTakeOwnership = 0x00000020, | 
|  | ofNoTypeLib = 0x00000080, | 
|  | ofNoTransform = 0x00001000, | 
|  | ofReserved1 = 0x00000100, | 
|  | ofReserved2 = 0x00000200, | 
|  | ofReserved3 = 0x00000400, | 
|  | ofReserved = 0xffffef40 | 
|  | } CorOpenFlags; | 
|  |  | 
|  | typedef enum CorAttributeTargets { | 
|  | catAssembly = 0x0001, | 
|  | catModule = 0x0002, | 
|  | catClass = 0x0004, | 
|  | catStruct = 0x0008, | 
|  | catEnum = 0x0010, | 
|  | catConstructor = 0x0020, | 
|  | catMethod = 0x0040, | 
|  | catProperty = 0x0080, | 
|  | catField = 0x0100, | 
|  | catEvent = 0x0200, | 
|  | catInterface = 0x0400, | 
|  | catParameter = 0x0800, | 
|  | catDelegate = 0x1000, | 
|  | catGenericParameter = 0x4000, | 
|  | catAll = catAssembly | catModule | catClass | catStruct | catEnum | catConstructor | 
|  | | catMethod | catProperty | catField | catEvent | catInterface | catParameter | catDelegate | catGenericParameter, | 
|  | catClassMembers = catClass | catStruct | catEnum | catConstructor | catMethod | catProperty | catField | catEvent | catDelegate | catInterface, | 
|  | } CorAttributeTargets; | 
|  |  | 
|  | typedef enum CorFileMapping { | 
|  | fmFlat = 0, | 
|  | fmExecutableImage = 1 | 
|  | } CorFileMapping; | 
|  |  | 
|  | typedef enum CompilationRelaxationsEnum { | 
|  | CompilationRelaxations_NoStringInterning = 0x8 | 
|  | } CompilationRelaxationEnum; | 
|  |  | 
|  | typedef enum NGenHintEnum { | 
|  | NGenDefault = 0x0, | 
|  | NGenEager = 0x1, | 
|  | NGenLazy = 0x2, | 
|  | NGenNever = 0x3 | 
|  | } NGenHintEnum; | 
|  |  | 
|  | typedef enum LoadHintEnum { | 
|  | LoadDefault = 0x0, | 
|  | LoadAlways = 0x01, | 
|  | LoadSometimes = 0x2, | 
|  | LoadNever = 0x3 | 
|  | } LoadHintEnum; | 
|  |  | 
|  | #ifndef _CORSAVESIZE_DEFINED_ | 
|  | #define _CORSAVESIZE_DEFINED_ | 
|  | typedef enum CorSaveSize { | 
|  | cssAccurate = 0x0000, | 
|  | cssQuick = 0x0001, | 
|  | cssDiscardTransientCAs = 0x0002 | 
|  | } CorSaveSize; | 
|  | #endif | 
|  |  | 
|  | typedef enum NativeTypeArrayFlags { | 
|  | ntaSizeParamIndexSpecified = 0x0001, | 
|  | ntaReserved = 0xfffe | 
|  | } NativeTypeArrayFlags; | 
|  |  | 
|  | typedef LPVOID mdScope; | 
|  | typedef ULONG32 mdToken; | 
|  | typedef mdToken mdModule; | 
|  | typedef mdToken mdTypeRef; | 
|  | typedef mdToken mdTypeDef; | 
|  | typedef mdToken mdFieldDef; | 
|  | typedef mdToken mdMethodDef; | 
|  | typedef mdToken mdParamDef; | 
|  | typedef mdToken mdInterfaceImpl; | 
|  | typedef mdToken mdMemberRef; | 
|  | typedef mdToken mdCustomAttribute; | 
|  | typedef mdToken mdPermission; | 
|  | typedef mdToken mdSignature; | 
|  | typedef mdToken mdEvent; | 
|  | typedef mdToken mdProperty; | 
|  | typedef mdToken mdModuleRef; | 
|  | typedef mdToken mdAssembly; | 
|  | typedef mdToken mdAssemblyRef; | 
|  | typedef mdToken mdFile; | 
|  | typedef mdToken mdExportedType; | 
|  | typedef mdToken mdManifestResource; | 
|  | typedef mdToken mdTypeSpec; | 
|  | typedef mdToken mdGenericParam; | 
|  | typedef mdToken mdMethodSpec; | 
|  | typedef mdToken mdGenericParamConstraint; | 
|  | typedef mdToken mdString; | 
|  | typedef mdToken mdCPToken; | 
|  | typedef ULONG RID; | 
|  | typedef CorTypeAttr CorRegTypeAttr; | 
|  | typedef void *HCORENUM; | 
|  | typedef unsigned char COR_SIGNATURE; | 
|  | typedef COR_SIGNATURE *PCOR_SIGNATURE; | 
|  | typedef const COR_SIGNATURE *PCCOR_SIGNATURE; | 
|  | typedef const char *MDUTF8CSTR; | 
|  | typedef char *MDUTF8STR; | 
|  | typedef void *PSECURITY_PROPS; | 
|  | typedef void *PSECURITY_VALUE; | 
|  | typedef void **PPSECURITY_PROPS; | 
|  | typedef void **PPSECURITY_VALUE; | 
|  |  | 
|  | typedef struct COR_SECATTR { | 
|  | mdMemberRef tkCtor; | 
|  | const void *pCustomAttribute; | 
|  | ULONG cbCustomAttribute; | 
|  | } COR_SECATTR; | 
|  |  | 
|  | typedef struct IMAGE_COR_ILMETHOD_SECT_SMALL { | 
|  | BYTE Kind; | 
|  | BYTE DataSize; | 
|  | } IMAGE_COR_ILMETHOD_SECT_SMALL; | 
|  |  | 
|  | typedef struct IMAGE_COR_ILMETHOD_SECT_FAT { | 
|  | unsigned int Kind : 8; | 
|  | unsigned int DataSize : 24; | 
|  | } IMAGE_COR_ILMETHOD_SECT_FAT; | 
|  |  | 
|  | typedef struct IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT { | 
|  | CorExceptionFlag Flags; | 
|  | DWORD TryOffset; | 
|  | DWORD TryLength; | 
|  | DWORD HandlerOffset; | 
|  | DWORD HandlerLength; | 
|  | __C89_NAMELESS union { | 
|  | DWORD ClassToken; | 
|  | DWORD FilterOffset; | 
|  | }; | 
|  | } IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT; | 
|  |  | 
|  | typedef struct IMAGE_COR_ILMETHOD_SECT_EH_FAT { | 
|  | IMAGE_COR_ILMETHOD_SECT_FAT SectFat; | 
|  | IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT Clauses[1]; | 
|  | } IMAGE_COR_ILMETHOD_SECT_EH_FAT; | 
|  |  | 
|  | typedef struct IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_SMALL { | 
|  | unsigned int Flags : 16; | 
|  | unsigned int TryOffset : 16; | 
|  | unsigned int TryLength : 8; | 
|  | unsigned int HandlerOffset : 16; | 
|  | unsigned int HandlerLength : 8; | 
|  | __C89_NAMELESS union { | 
|  | DWORD ClassToken; | 
|  | DWORD FilterOffset; | 
|  | }; | 
|  | } IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_SMALL; | 
|  |  | 
|  | typedef struct IMAGE_COR_ILMETHOD_SECT_EH_SMALL { | 
|  | IMAGE_COR_ILMETHOD_SECT_SMALL SectSmall; | 
|  | WORD Reserved; | 
|  | IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_SMALL Clauses[1]; | 
|  | } IMAGE_COR_ILMETHOD_SECT_EH_SMALL; | 
|  |  | 
|  | typedef union IMAGE_COR_ILMETHOD_SECT_EH { | 
|  | IMAGE_COR_ILMETHOD_SECT_EH_SMALL Small; | 
|  | IMAGE_COR_ILMETHOD_SECT_EH_FAT Fat; | 
|  | } IMAGE_COR_ILMETHOD_SECT_EH; | 
|  |  | 
|  | typedef struct IMAGE_COR_ILMETHOD_TINY { | 
|  | BYTE Flags_CodeSize; | 
|  | } IMAGE_COR_ILMETHOD_TINY; | 
|  |  | 
|  | typedef struct IMAGE_COR_ILMETHOD_FAT { | 
|  | unsigned int Flags : 12; | 
|  | unsigned int Size : 4; | 
|  | unsigned int MaxStack : 16; | 
|  | DWORD CodeSize; | 
|  | mdSignature LocalVarSigTok; | 
|  | } IMAGE_COR_ILMETHOD_FAT; | 
|  |  | 
|  | typedef union IMAGE_COR_ILMETHOD { | 
|  | IMAGE_COR_ILMETHOD_TINY Tiny; | 
|  | IMAGE_COR_ILMETHOD_FAT Fat; | 
|  | } IMAGE_COR_ILMETHOD; | 
|  |  | 
|  | typedef struct IMAGE_COR_VTABLEFIXUP { | 
|  | ULONG RVA; | 
|  | USHORT Count; | 
|  | USHORT Type; | 
|  | } IMAGE_COR_VTABLEFIXUP; | 
|  |  | 
|  | #ifndef _COR_FIELD_OFFSET_ | 
|  | #define _COR_FIELD_OFFSET_ | 
|  | typedef struct COR_FIELD_OFFSET { | 
|  | mdFieldDef ridOfField; | 
|  | ULONG ulOffset; | 
|  | } COR_FIELD_OFFSET; | 
|  | #endif | 
|  |  | 
|  | #ifndef IMAGE_DIRECTORY_ENTRY_COMHEADER | 
|  | #define IMAGE_DIRECTORY_ENTRY_COMHEADER 14 | 
|  | #endif | 
|  |  | 
|  | #define FRAMEWORK_REGISTRY_KEY "Software\\Microsoft\\.NETFramework" | 
|  | #define FRAMEWORK_REGISTRY_KEY_W L"Software\\Microsoft\\.NETFramework" | 
|  |  | 
|  | #ifdef _WIN64 | 
|  | #define USER_FRAMEWORK_REGISTRY_KEY "Software\\Microsoft\\.NETFramework64" | 
|  | #define USER_FRAMEWORK_REGISTRY_KEY_W L"Software\\Microsoft\\.NETFramework64" | 
|  | #else | 
|  | #define USER_FRAMEWORK_REGISTRY_KEY "Software\\Microsoft\\.NETFramework" | 
|  | #define USER_FRAMEWORK_REGISTRY_KEY_W L"Software\\Microsoft\\.NETFramework" | 
|  | #endif | 
|  |  | 
|  | #define COR_CTOR_METHOD_NAME ".ctor" | 
|  | #define COR_CTOR_METHOD_NAME_W L".ctor" | 
|  | #define COR_CCTOR_METHOD_NAME ".cctor" | 
|  | #define COR_CCTOR_METHOD_NAME_W L".cctor" | 
|  |  | 
|  | #define COR_ENUM_FIELD_NAME "value__" | 
|  | #define COR_ENUM_FIELD_NAME_W L"value__" | 
|  |  | 
|  | #define COR_DELETED_NAME_A "_Deleted" | 
|  | #define COR_DELETED_NAME_W L"_Deleted" | 
|  | #define COR_VTABLEGAP_NAME_A "_VtblGap" | 
|  | #define COR_VTABLEGAP_NAME_W L"_VtblGap" | 
|  |  | 
|  | #define COR_IS_32BIT_REQUIRED(_FLAGS) (((_FLAGS) & (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED)) == (COMIMAGE_FLAGS_32BITREQUIRED)) | 
|  | #define COR_IS_32BIT_PREFERRED(_FLAGS) (((_FLAGS) & (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED)) == (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED)) | 
|  | #define COR_SET_32BIT_REQUIRED(_FLAGS) do { _FLAGS = (_FLAGS & ~COMIMAGE_FLAGS_32BITPREFERRED) | COMIMAGE_FLAGS_32BITREQUIRED; } while (0) | 
|  | #define COR_SET_32BIT_PREFERRED(_FLAGS) do { _FLAGS |= COMIMAGE_FLAGS_32BITPREFERRED | COMIMAGE_FLAGS_32BITREQUIRED; } while (0) | 
|  | #define COR_CLEAR_32BIT_REQUIRED(_flagsfield) do { _FLAGS &= ~ (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED); } while (0) | 
|  | #define COR_CLEAR_32BIT_PREFERRED(_FLAGS) do { _FLAGS &= ~ (COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED); } while (0) | 
|  |  | 
|  | #define COR_IS_METHOD_MANAGED_IL(flags) ((flags & 0xf) == (miIL | miManaged)) | 
|  | #define COR_IS_METHOD_MANAGED_OPTIL(flags) ((flags & 0xf) == (miOPTIL | miManaged)) | 
|  | #define COR_IS_METHOD_MANAGED_NATIVE(flags) ((flags & 0xf) == (miNative | miManaged)) | 
|  | #define COR_IS_METHOD_UNMANAGED_NATIVE(flags) ((flags & 0xf) == (miNative | miUnmanaged)) | 
|  |  | 
|  | #define CMOD_CALLCONV_NAMESPACE_OLD "System.Runtime.InteropServices" | 
|  | #define CMOD_CALLCONV_NAMESPACE "System.Runtime.CompilerServices" | 
|  | #define CMOD_CALLCONV_NAME_CDECL "CallConvCdecl" | 
|  | #define CMOD_CALLCONV_NAME_STDCALL "CallConvStdcall" | 
|  | #define CMOD_CALLCONV_NAME_THISCALL "CallConvThiscall" | 
|  | #define CMOD_CALLCONV_NAME_FASTCALL "CallConvFastcall" | 
|  |  | 
|  | #define IsDeletedName(strName) (strncmp (strName, COR_DELETED_NAME_A, COR_DELETED_NAME_LENGTH) == 0) | 
|  | #define IsVtblGapName(strName) (strncmp (strName, COR_VTABLEGAP_NAME_A, COR_VTABLEGAP_NAME_LENGTH) == 0) | 
|  |  | 
|  | #define IsTdNotPublic(x) (((x) & tdVisibilityMask) == tdNotPublic) | 
|  | #define IsTdPublic(x) (((x) & tdVisibilityMask) == tdPublic) | 
|  | #define IsTdNestedPublic(x) (((x) & tdVisibilityMask) == tdNestedPublic) | 
|  | #define IsTdNestedPrivate(x) (((x) & tdVisibilityMask) == tdNestedPrivate) | 
|  | #define IsTdNestedFamily(x) (((x) & tdVisibilityMask) == tdNestedFamily) | 
|  | #define IsTdNestedAssembly(x) (((x) & tdVisibilityMask) == tdNestedAssembly) | 
|  | #define IsTdNestedFamANDAssem(x) (((x) & tdVisibilityMask) == tdNestedFamANDAssem) | 
|  | #define IsTdNestedFamORAssem(x) (((x) & tdVisibilityMask) == tdNestedFamORAssem) | 
|  | #define IsTdNested(x) (((x) & tdVisibilityMask) >= tdNestedPublic) | 
|  | #define IsTdAutoLayout(x) (((x) & tdLayoutMask) == tdAutoLayout) | 
|  | #define IsTdSequentialLayout(x) (((x) & tdLayoutMask) == tdSequentialLayout) | 
|  | #define IsTdExplicitLayout(x) (((x) & tdLayoutMask) == tdExplicitLayout) | 
|  | #define IsTdClass(x) (((x) & tdClassSemanticsMask) == tdClass) | 
|  | #define IsTdInterface(x) (((x) & tdClassSemanticsMask) == tdInterface) | 
|  | #define IsTdAbstract(x) ((x) & tdAbstract) | 
|  | #define IsTdSealed(x) ((x) & tdSealed) | 
|  | #define IsTdSpecialName(x) ((x) & tdSpecialName) | 
|  | #define IsTdImport(x) ((x) & tdImport) | 
|  | #define IsTdSerializable(x) ((x) & tdSerializable) | 
|  | #define IsTdWindowsRuntime(x) ((x) & tdWindowsRuntime) | 
|  | #define IsTdAnsiClass(x) (((x) & tdStringFormatMask) == tdAnsiClass) | 
|  | #define IsTdUnicodeClass(x) (((x) & tdStringFormatMask) == tdUnicodeClass) | 
|  | #define IsTdAutoClass(x) (((x) & tdStringFormatMask) == tdAutoClass) | 
|  | #define IsTdCustomFormatClass(x) (((x) & tdStringFormatMask) == tdCustomFormatClass) | 
|  | #define IsTdBeforeFieldInit(x) ((x) & tdBeforeFieldInit) | 
|  | #define IsTdForwarder(x) ((x) & tdForwarder) | 
|  | #define IsTdRTSpecialName(x) ((x) & tdRTSpecialName) | 
|  | #define IsTdHasSecurity(x) ((x) & tdHasSecurity) | 
|  |  | 
|  | #define IsMdPrivateScope(x) (((x) & mdMemberAccessMask) == mdPrivateScope) | 
|  | #define IsMdPrivate(x) (((x) & mdMemberAccessMask) == mdPrivate) | 
|  | #define IsMdFamANDAssem(x) (((x) & mdMemberAccessMask) == mdFamANDAssem) | 
|  | #define IsMdAssem(x) (((x) & mdMemberAccessMask) == mdAssem) | 
|  | #define IsMdFamily(x) (((x) & mdMemberAccessMask) == mdFamily) | 
|  | #define IsMdFamORAssem(x) (((x) & mdMemberAccessMask) == mdFamORAssem) | 
|  | #define IsMdPublic(x) (((x) & mdMemberAccessMask) == mdPublic) | 
|  | #define IsMdUnmanagedExport(x) ((x) & mdUnmanagedExport) | 
|  | #define IsMdStatic(x) ((x) & mdStatic) | 
|  | #define IsMdFinal(x) ((x) & mdFinal) | 
|  | #define IsMdVirtual(x) ((x) & mdVirtual) | 
|  | #define IsMdHideBySig(x) ((x) & mdHideBySig) | 
|  | #define IsMdReuseSlot(x) (((x) & mdVtableLayoutMask) == mdReuseSlot) | 
|  | #define IsMdNewSlot(x) (((x) & mdVtableLayoutMask) == mdNewSlot) | 
|  | #define IsMdCheckAccessOnOverride(x) ((x) & mdCheckAccessOnOverride) | 
|  | #define IsMdAbstract(x) ((x) & mdAbstract) | 
|  | #define IsMdSpecialName(x) ((x) & mdSpecialName) | 
|  | #define IsMdPinvokeImpl(x) ((x) & mdPinvokeImpl) | 
|  | #define IsMdRTSpecialName(x) ((x) & mdRTSpecialName) | 
|  | #define IsMdInstanceInitializer(x, str) (((x) & mdRTSpecialName) && !strcmp ((str), COR_CTOR_METHOD_NAME)) | 
|  | #define IsMdInstanceInitializerW(x, str) (((x) & mdRTSpecialName) && !wcscmp ((str), COR_CTOR_METHOD_NAME_W)) | 
|  | #define IsMdClassConstructor(x, str) (((x) & mdRTSpecialName) && !strcmp ((str), COR_CCTOR_METHOD_NAME)) | 
|  | #define IsMdClassConstructorW(x, str) (((x) & mdRTSpecialName) && !wcscmp ((str), COR_CCTOR_METHOD_NAME_W)) | 
|  | #define IsMdHasSecurity(x) ((x) & mdHasSecurity) | 
|  | #define IsMdRequireSecObject(x) ((x) & mdRequireSecObject) | 
|  |  | 
|  | #define IsFdPrivateScope(x) (((x) & fdFieldAccessMask) == fdPrivateScope) | 
|  | #define IsFdPrivate(x) (((x) & fdFieldAccessMask) == fdPrivate) | 
|  | #define IsFdFamANDAssem(x) (((x) & fdFieldAccessMask) == fdFamANDAssem) | 
|  | #define IsFdAssembly(x) (((x) & fdFieldAccessMask) == fdAssembly) | 
|  | #define IsFdFamily(x) (((x) & fdFieldAccessMask) == fdFamily) | 
|  | #define IsFdFamORAssem(x) (((x) & fdFieldAccessMask) == fdFamORAssem) | 
|  | #define IsFdPublic(x) (((x) & fdFieldAccessMask) == fdPublic) | 
|  | #define IsFdStatic(x) ((x) & fdStatic) | 
|  | #define IsFdInitOnly(x) ((x) & fdInitOnly) | 
|  | #define IsFdLiteral(x) ((x) & fdLiteral) | 
|  | #define IsFdNotSerialized(x) ((x) & fdNotSerialized) | 
|  | #define IsFdHasFieldRVA(x) ((x) & fdHasFieldRVA) | 
|  | #define IsFdSpecialName(x) ((x) & fdSpecialName) | 
|  | #define IsFdRTSpecialName(x) ((x) & fdRTSpecialName) | 
|  | #define IsFdHasFieldMarshal(x) ((x) & fdHasFieldMarshal) | 
|  | #define IsFdPinvokeImpl(x) ((x) & fdPinvokeImpl) | 
|  | #define IsFdHasDefault(x) ((x) & fdHasDefault) | 
|  |  | 
|  | #define IsPdIn(x) ((x) & pdIn) | 
|  | #define IsPdOut(x) ((x) & pdOut) | 
|  | #define IsPdOptional(x) ((x) & pdOptional) | 
|  | #define IsPdHasDefault(x) ((x) & pdHasDefault) | 
|  | #define IsPdHasFieldMarshal(x) ((x) & pdHasFieldMarshal) | 
|  |  | 
|  | #define IsPrSpecialName(x) ((x) & prSpecialName) | 
|  | #define IsPrRTSpecialName(x) ((x) & prRTSpecialName) | 
|  | #define IsPrHasDefault(x) ((x) & prHasDefault) | 
|  |  | 
|  | #define IsEvSpecialName(x) ((x) & evSpecialName) | 
|  | #define IsEvRTSpecialName(x) ((x) & evRTSpecialName) | 
|  |  | 
|  | #define IsMsSetter(x) ((x) & msSetter) | 
|  | #define IsMsGetter(x) ((x) & msGetter) | 
|  | #define IsMsOther(x) ((x) & msOther) | 
|  | #define IsMsAddOn(x) ((x) & msAddOn) | 
|  | #define IsMsRemoveOn(x) ((x) & msRemoveOn) | 
|  | #define IsMsFire(x) ((x) & msFire) | 
|  |  | 
|  | #define IsDclActionNil(x) (((x) & dclActionMask) == dclActionNil) | 
|  | #define IsDclActionAnyStackModifier(x) ((((x) & dclActionMask) == dclAssert) || (((x) & dclActionMask) == dclDeny) || (((x) & dclActionMask) == dclPermitOnly)) | 
|  | #define IsAssemblyDclAction(x) (((x) >= dclRequestMinimum) && ((x) <= dclRequestRefuse)) | 
|  | #define IsNGenOnlyDclAction(x) (((x) == dclPrejitGrant) || ((x) == dclPrejitDenied)) | 
|  |  | 
|  | #define IsMiIL(x) (((x) & miCodeTypeMask) == miIL) | 
|  | #define IsMiNative(x) (((x) & miCodeTypeMask) == miNative) | 
|  | #define IsMiOPTIL(x) (((x) & miCodeTypeMask) == miOPTIL) | 
|  | #define IsMiRuntime(x) (((x) & miCodeTypeMask) == miRuntime) | 
|  | #define IsMiUnmanaged(x) (((x) & miManagedMask) == miUnmanaged) | 
|  | #define IsMiManaged(x) (((x) & miManagedMask) == miManaged) | 
|  | #define IsMiNoInlining(x) ((x) & miNoInlining) | 
|  | #define IsMiForwardRef(x) ((x) & miForwardRef) | 
|  | #define IsMiSynchronized(x) ((x) & miSynchronized) | 
|  | #define IsMiNoOptimization(x) ((x) & miNoOptimization) | 
|  | #define IsMiPreserveSig(x) ((x) & miPreserveSig) | 
|  | #define IsMiAggressiveInlining(x) ((x) & miAggressiveInlining) | 
|  | #define IsMiInternalCall(x) ((x) & miInternalCall) | 
|  |  | 
|  | #define IsPmNoMangle(x) ((x) & pmNoMangle) | 
|  | #define IsPmCharSetNotSpec(x) (((x) & pmCharSetMask) == pmCharSetNotSpec) | 
|  | #define IsPmCharSetAnsi(x) (((x) & pmCharSetMask) == pmCharSetAnsi) | 
|  | #define IsPmCharSetUnicode(x) (((x) & pmCharSetMask) == pmCharSetUnicode) | 
|  | #define IsPmCharSetAuto(x) (((x) & pmCharSetMask) == pmCharSetAuto) | 
|  | #define IsPmSupportsLastError(x) ((x) & pmSupportsLastError) | 
|  | #define IsPmCallConvWinapi(x) (((x) & pmCallConvMask) == pmCallConvWinapi) | 
|  | #define IsPmCallConvCdecl(x) (((x) & pmCallConvMask) == pmCallConvCdecl) | 
|  | #define IsPmCallConvStdcall(x) (((x) & pmCallConvMask) == pmCallConvStdcall) | 
|  | #define IsPmCallConvThiscall(x) (((x) & pmCallConvMask) == pmCallConvThiscall) | 
|  | #define IsPmCallConvFastcall(x) (((x) & pmCallConvMask) == pmCallConvFastcall) | 
|  | #define IsPmBestFitEnabled(x) (((x) & pmBestFitMask) == pmBestFitEnabled) | 
|  | #define IsPmBestFitDisabled(x) (((x) & pmBestFitMask) == pmBestFitDisabled) | 
|  | #define IsPmBestFitUseAssem(x) (((x) & pmBestFitMask) == pmBestFitUseAssem) | 
|  | #define IsPmThrowOnUnmappableCharEnabled(x) (((x) & pmThrowOnUnmappableCharMask) == pmThrowOnUnmappableCharEnabled) | 
|  | #define IsPmThrowOnUnmappableCharDisabled(x) (((x) & pmThrowOnUnmappableCharMask) == pmThrowOnUnmappableCharDisabled) | 
|  | #define IsPmThrowOnUnmappableCharUseAssem(x) (((x) & pmThrowOnUnmappableCharMask) == pmThrowOnUnmappableCharUseAssem) | 
|  |  | 
|  | #define IsAfRetargetable(x) ((x) & afRetargetable) | 
|  | #define IsAfContentType_Default(x) (((x) & afContentType_Mask) == afContentType_Default) | 
|  | #define IsAfContentType_WindowsRuntime(x) (((x) & afContentType_Mask) == afContentType_WindowsRuntime) | 
|  | #define IsAfPA_MSIL(x) (((x) & afPA_Mask) == afPA_MSIL) | 
|  | #define IsAfPA_x86(x) (((x) & afPA_Mask) == afPA_x86) | 
|  | #define IsAfPA_IA64(x) (((x) & afPA_Mask) == afPA_IA64) | 
|  | #define IsAfPA_AMD64(x) (((x) & afPA_Mask) == afPA_AMD64) | 
|  | #define IsAfPA_ARM(x) (((x) & afPA_Mask) == afPA_ARM) | 
|  | #define IsAfPA_NoPlatform(x) (((x) & afPA_FullMask) == afPA_NoPlatform) | 
|  | #define IsAfPA_Specified(x) ((x) & afPA_Specified) | 
|  | #define PAIndex(x) (((x) & afPA_Mask) >> afPA_Shift) | 
|  | #define PAFlag(x) (((x) << afPA_Shift) & afPA_Mask) | 
|  | #define PrepareForSaving(x) ((x) &(((x) & afPA_Specified) ? ~afPA_Specified : ~afPA_FullMask)) | 
|  | #define IsAfEnableJITcompileTracking(x) ((x) & afEnableJITcompileTracking) | 
|  | #define IsAfDisableJITcompileOptimizer(x) ((x) & afDisableJITcompileOptimizer) | 
|  | #define IsAfPublicKey(x) ((x) & afPublicKey) | 
|  | #define IsAfPublicKeyToken(x) (((x) & afPublicKey) == 0) | 
|  |  | 
|  | #define IsMrPublic(x) (((x) & mrVisibilityMask) == mrPublic) | 
|  | #define IsMrPrivate(x) (((x) & mrVisibilityMask) == mrPrivate) | 
|  |  | 
|  | #define IsFfContainsMetaData(x) (! ((x) & ffContainsNoMetaData)) | 
|  | #define IsFfContainsNoMetaData(x) ((x) & ffContainsNoMetaData) | 
|  |  | 
|  | #define IMAGE_CEE_CS_CALLCONV_INSTANTIATION IMAGE_CEE_CS_CALLCONV_GENERICINST | 
|  |  | 
|  | #define IsENCDelta(x) (((x) & MDUpdateMask) == MDUpdateDelta) | 
|  |  | 
|  | #define RidToToken(rid, tktype) ((rid) |= (tktype)) | 
|  | #define TokenFromRid(rid, tktype) ((rid) | (tktype)) | 
|  | #define RidFromToken(tk) ((RID) ((tk) & 0x00ffffff)) | 
|  | #define TypeFromToken(tk) ((ULONG32) ((tk) & 0xff000000)) | 
|  | #define IsNilToken(tk) ((RidFromToken (tk)) == 0) | 
|  |  | 
|  | #define mdTokenNil ((mdToken)0) | 
|  | #define mdModuleNil ((mdModule)mdtModule) | 
|  | #define mdTypeRefNil ((mdTypeRef)mdtTypeRef) | 
|  | #define mdTypeDefNil ((mdTypeDef)mdtTypeDef) | 
|  | #define mdFieldDefNil ((mdFieldDef)mdtFieldDef) | 
|  | #define mdMethodDefNil ((mdMethodDef)mdtMethodDef) | 
|  | #define mdParamDefNil ((mdParamDef)mdtParamDef) | 
|  | #define mdInterfaceImplNil ((mdInterfaceImpl)mdtInterfaceImpl) | 
|  | #define mdMemberRefNil ((mdMemberRef)mdtMemberRef) | 
|  | #define mdCustomAttributeNil ((mdCustomAttribute)mdtCustomAttribute) | 
|  | #define mdPermissionNil ((mdPermission)mdtPermission) | 
|  | #define mdSignatureNil ((mdSignature)mdtSignature) | 
|  | #define mdEventNil ((mdEvent)mdtEvent) | 
|  | #define mdPropertyNil ((mdProperty)mdtProperty) | 
|  | #define mdModuleRefNil ((mdModuleRef)mdtModuleRef) | 
|  | #define mdTypeSpecNil ((mdTypeSpec)mdtTypeSpec) | 
|  | #define mdAssemblyNil ((mdAssembly)mdtAssembly) | 
|  | #define mdAssemblyRefNil ((mdAssemblyRef)mdtAssemblyRef) | 
|  | #define mdFileNil ((mdFile)mdtFile) | 
|  | #define mdExportedTypeNil ((mdExportedType)mdtExportedType) | 
|  | #define mdManifestResourceNil ((mdManifestResource)mdtManifestResource) | 
|  | #define mdGenericParamNil ((mdGenericParam)mdtGenericParam) | 
|  | #define mdGenericParamConstraintNil ((mdGenericParamConstraint)mdtGenericParamConstraint) | 
|  | #define mdMethodSpecNil ((mdMethodSpec)mdtMethodSpec) | 
|  | #define mdStringNil ((mdString)mdtString) | 
|  |  | 
|  | #define IsOfRead(x) (((x) & ofReadWriteMask) == ofRead) | 
|  | #define IsOfReadWrite(x) (((x) & ofReadWriteMask) == ofWrite) | 
|  | #define IsOfCopyMemory(x) ((x) & ofCopyMemory) | 
|  | #define IsOfReadOnly(x) ((x) & ofReadOnly) | 
|  | #define IsOfTakeOwnership(x) ((x) & ofTakeOwnership) | 
|  | #define IsOfReserved(x) (((x) & ofReserved) != 0) | 
|  |  | 
|  | #ifndef IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS | 
|  | #define IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS (IMAGE_CEE_CS_CALLCONV_DEFAULT | IMAGE_CEE_CS_CALLCONV_HASTHIS) | 
|  | #endif | 
|  |  | 
|  | #define INTEROP_AUTOPROXY_TYPE_W L"System.Runtime.InteropServices.AutomationProxyAttribute" | 
|  | #define INTEROP_AUTOPROXY_TYPE "System.Runtime.InteropServices.AutomationProxyAttribute" | 
|  | #define INTEROP_AUTOPROXY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_BOOLEAN} | 
|  | #define INTEROP_BESTFITMAPPING_TYPE_W L"System.Runtime.InteropServices.BestFitMappingAttribute" | 
|  | #define INTEROP_BESTFITMAPPING_TYPE "System.Runtime.InteropServices.BestFitMappingAttribute" | 
|  | #define INTEROP_BESTFITMAPPING_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_BOOLEAN, ELEMENT_TYPE_BOOLEAN} | 
|  | #define INTEROP_CLASSINTERFACE_TYPE_W L"System.Runtime.InteropServices.ClassInterfaceAttribute" | 
|  | #define INTEROP_CLASSINTERFACE_TYPE "System.Runtime.InteropServices.ClassInterfaceAttribute" | 
|  | #define INTEROP_CLASSINTERFACE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} | 
|  | #define INTEROP_COCLASS_TYPE_W L"System.Runtime.InteropServices.CoClassAttribute" | 
|  | #define INTEROP_COCLASS_TYPE "System.Runtime.InteropServices.CoClassAttribute" | 
|  | #define INTEROP_COMALIASNAME_TYPE_W L"System.Runtime.InteropServices.ComAliasNameAttribute" | 
|  | #define INTEROP_COMALIASNAME_TYPE "System.Runtime.InteropServices.ComAliasNameAttribute" | 
|  | #define INTEROP_COMALIASNAME_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} | 
|  | #define INTEROP_COMCOMPATIBLEVERSION_TYPE_W L"System.Runtime.InteropServices.ComCompatibleVersionAttribute" | 
|  | #define INTEROP_COMCOMPATIBLEVERSION_TYPE "System.Runtime.InteropServices.ComCompatibleVersionAttribute" | 
|  | #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} | 
|  | #define INTEROP_COMCONVERSIONLOSS_TYPE_W L"System.Runtime.InteropServices.ComConversionLossAttribute" | 
|  | #define INTEROP_COMCONVERSIONLOSS_TYPE "System.Runtime.InteropServices.ComConversionLossAttribute" | 
|  | #define INTEROP_COMCONVERSIONLOSS_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_COMDEFAULTINTERFACE_TYPE_W L"System.Runtime.InteropServices.ComDefaultInterfaceAttribute" | 
|  | #define INTEROP_COMDEFAULTINTERFACE_TYPE "System.Runtime.InteropServices.ComDefaultInterfaceAttribute" | 
|  | #define INTEROP_COMEMULATE_TYPE_W L"System.Runtime.InteropServices.ComEmulateAttribute" | 
|  | #define INTEROP_COMEMULATE_TYPE "System.Runtime.InteropServices.ComEmulateAttribute" | 
|  | #define INTEROP_COMEMULATE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} | 
|  | #define INTEROP_COMEVENTINTERFACE_TYPE_W L"System.Runtime.InteropServices.ComEventInterfaceAttribute" | 
|  | #define INTEROP_COMEVENTINTERFACE_TYPE "System.Runtime.InteropServices.ComEventInterfaceAttribute" | 
|  | #define INTEROP_COMIMPORT_TYPE_W L"System.Runtime.InteropServices.ComImportAttribute" | 
|  | #define INTEROP_COMIMPORT_TYPE "System.Runtime.InteropServices.ComImportAttribute" | 
|  | #define INTEROP_COMIMPORT_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_COMREGISTERFUNCTION_TYPE_W L"System.Runtime.InteropServices.ComRegisterFunctionAttribute" | 
|  | #define INTEROP_COMREGISTERFUNCTION_TYPE "System.Runtime.InteropServices.ComRegisterFunctionAttribute" | 
|  | #define INTEROP_COMREGISTERFUNCTION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_COMSOURCEINTERFACES_TYPE_W L"System.Runtime.InteropServices.ComSourceInterfacesAttribute" | 
|  | #define INTEROP_COMSOURCEINTERFACES_TYPE "System.Runtime.InteropServices.ComSourceInterfacesAttribute" | 
|  | #define INTEROP_COMSOURCEINTERFACES_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} | 
|  | #define INTEROP_COMSUBSTITUTABLEINTERFACE_TYPE_W L"System.Runtime.InteropServices.ComSubstitutableInterfaceAttribute" | 
|  | #define INTEROP_COMSUBSTITUTABLEINTERFACE_TYPE "System.Runtime.InteropServices.ComSubstitutableInterfaceAttribute" | 
|  | #define INTEROP_COMSUBSTITUTABLEINTERFACE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_COMUNREGISTERFUNCTION_TYPE_W L"System.Runtime.InteropServices.ComUnregisterFunctionAttribute" | 
|  | #define INTEROP_COMUNREGISTERFUNCTION_TYPE "System.Runtime.InteropServices.ComUnregisterFunctionAttribute" | 
|  | #define INTEROP_COMUNREGISTERFUNCTION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_COMVISIBLE_TYPE_W L"System.Runtime.InteropServices.ComVisibleAttribute" | 
|  | #define INTEROP_COMVISIBLE_TYPE "System.Runtime.InteropServices.ComVisibleAttribute" | 
|  | #define INTEROP_COMVISIBLE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_BOOLEAN} | 
|  | #define INTEROP_DATETIMEVALUE_TYPE_W L"System.Runtime.CompilerServices.DateTimeConstantAttribute" | 
|  | #define INTEROP_DATETIMEVALUE_TYPE "System.Runtime.CompilerServices.DateTimeConstantAttribute" | 
|  | #define INTEROP_DATETIMEVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I8} | 
|  | #define INTEROP_DECIMALVALUE_TYPE_W L"System.Runtime.CompilerServices.DecimalConstantAttribute" | 
|  | #define INTEROP_DECIMALVALUE_TYPE "System.Runtime.CompilerServices.DecimalConstantAttribute" | 
|  | #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} | 
|  | #define INTEROP_DEFAULTMEMBER_TYPE_W L"System.Reflection.DefaultMemberAttribute" | 
|  | #define INTEROP_DEFAULTMEMBER_TYPE "System.Reflection.DefaultMemberAttribute" | 
|  | #define INTEROP_DEFAULTMEMBER_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} | 
|  | #define INTEROP_DISPID_TYPE_W L"System.Runtime.InteropServices.DispIdAttribute" | 
|  | #define INTEROP_DISPID_TYPE "System.Runtime.InteropServices.DispIdAttribute" | 
|  | #define INTEROP_DISPID_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I4} | 
|  | #define INTEROP_GUID_TYPE_W L"System.Runtime.InteropServices.GuidAttribute" | 
|  | #define INTEROP_GUID_TYPE "System.Runtime.InteropServices.GuidAttribute" | 
|  | #define INTEROP_GUID_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} | 
|  | #define INTEROP_IDISPATCHIMPL_TYPE_W L"System.Runtime.InteropServices.IDispatchImplAttribute" | 
|  | #define INTEROP_IDISPATCHIMPL_TYPE "System.Runtime.InteropServices.IDispatchImplAttribute" | 
|  | #define INTEROP_IDISPATCHIMPL_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} | 
|  | #define INTEROP_IDISPATCHVALUE_TYPE_W L"System.Runtime.CompilerServices.IDispatchConstantAttribute" | 
|  | #define INTEROP_IDISPATCHVALUE_TYPE "System.Runtime.CompilerServices.IDispatchConstantAttribute" | 
|  | #define INTEROP_IDISPATCHVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_IMPORTEDFROMTYPELIB_TYPE_W L"System.Runtime.InteropServices.ImportedFromTypeLibAttribute" | 
|  | #define INTEROP_IMPORTEDFROMTYPELIB_TYPE "System.Runtime.InteropServices.ImportedFromTypeLibAttribute" | 
|  | #define INTEROP_IMPORTEDFROMTYPELIB_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} | 
|  | #define INTEROP_IN_TYPE_W L"System.Runtime.InteropServices.InAttribute" | 
|  | #define INTEROP_IN_TYPE "System.Runtime.InteropServices.InAttribute" | 
|  | #define INTEROP_IN_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_INTERFACETYPE_TYPE_W L"System.Runtime.InteropServices.InterfaceTypeAttribute" | 
|  | #define INTEROP_INTERFACETYPE_TYPE "System.Runtime.InteropServices.InterfaceTypeAttribute" | 
|  | #define INTEROP_INTERFACETYPE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} | 
|  | #define INTEROP_IUNKNOWNVALUE_TYPE_W L"System.Runtime.CompilerServices.IUnknownConstantAttribute" | 
|  | #define INTEROP_IUNKNOWNVALUE_TYPE "System.Runtime.CompilerServices.IUnknownConstantAttribute" | 
|  | #define INTEROP_IUNKNOWNVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_LCIDCONVERSION_TYPE_W L"System.Runtime.InteropServices.LCIDConversionAttribute" | 
|  | #define INTEROP_LCIDCONVERSION_TYPE "System.Runtime.InteropServices.LCIDConversionAttribute" | 
|  | #define INTEROP_LCIDCONVERSION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I4} | 
|  | #define INTEROP_MARSHALAS_TYPE_W L"System.Runtime.InteropServices.MarshalAsAttribute" | 
|  | #define INTEROP_MARSHALAS_TYPE "System.Runtime.InteropServices.MarshalAsAttribute" | 
|  | #define INTEROP_MARSHALAS_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} | 
|  | #define INTEROP_OUT_TYPE_W L"System.Runtime.InteropServices.OutAttribute" | 
|  | #define INTEROP_OUT_TYPE "System.Runtime.InteropServices.OutAttribute" | 
|  | #define INTEROP_OUT_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_PARAMARRAY_TYPE_W L"System.ParamArrayAttribute" | 
|  | #define INTEROP_PARAMARRAY_TYPE "System.ParamArrayAttribute" | 
|  | #define INTEROP_PARAMARRAY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_PRESERVESIG_TYPE_W L"System.Runtime.InteropServices.PreserveSigAttribure" | 
|  | #define INTEROP_PRESERVESIG_TYPE "System.Runtime.InteropServices.PreserveSigAttribure" | 
|  | #define INTEROP_PRESERVESIG_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_BOOLEAN} | 
|  | #define INTEROP_PRIMARYINTEROPASSEMBLY_TYPE_W L"System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute" | 
|  | #define INTEROP_PRIMARYINTEROPASSEMBLY_TYPE "System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute" | 
|  | #define INTEROP_PRIMARYINTEROPASSEMBLY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I4, ELEMENT_TYPE_I4} | 
|  | #define INTEROP_SERIALIZABLE_TYPE_W L"System.SerializableAttribute" | 
|  | #define INTEROP_SERIALIZABLE_TYPE "System.SerializableAttribute" | 
|  | #define INTEROP_SERIALIZABLE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_TYPE_W L"System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute" | 
|  | #define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_TYPE "System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute" | 
|  | #define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define INTEROP_TYPELIBFUNC_TYPE_W L"System.Runtime.InteropServices.TypeLibFuncAttribute" | 
|  | #define INTEROP_TYPELIBFUNC_TYPE "System.Runtime.InteropServices.TypeLibFuncAttribute" | 
|  | #define INTEROP_TYPELIBIMPORTCLASS_TYPE_W L"System.Runtime.InteropServices.TypeLibImportClassAttribute" | 
|  | #define INTEROP_TYPELIBIMPORTCLASS_TYPE "System.Runtime.InteropServices.TypeLibImportClassAttribute" | 
|  | #define INTEROP_TYPELIBFUNC_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} | 
|  | #define INTEROP_TYPELIBTYPE_TYPE_W L"System.Runtime.InteropServices.TypeLibTypeAttribute" | 
|  | #define INTEROP_TYPELIBTYPE_TYPE "System.Runtime.InteropServices.TypeLibTypeAttribute" | 
|  | #define INTEROP_TYPELIBTYPE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} | 
|  | #define INTEROP_TYPELIBVAR_TYPE_W L"System.Runtime.InteropServices.TypeLibVarAttribute" | 
|  | #define INTEROP_TYPELIBVAR_TYPE "System.Runtime.InteropServices.TypeLibVarAttribute" | 
|  | #define INTEROP_TYPELIBVAR_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} | 
|  | #define INTEROP_TYPELIBVERSION_TYPE_W L"System.Runtime.InteropServices.TypeLibVersionAttribute" | 
|  | #define INTEROP_TYPELIBVERSION_TYPE "System.Runtime.InteropServices.TypeLibVersionAttribute" | 
|  | #define INTEROP_TYPELIBVERSION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2, ELEMENT_TYPE_I2} | 
|  |  | 
|  | #define FORWARD_INTEROP_STUB_METHOD_TYPE_W L"System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute" | 
|  | #define FORWARD_INTEROP_STUB_METHOD_TYPE "System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute" | 
|  |  | 
|  | #define FRIEND_ACCESS_ALLOWED_ATTRIBUTE_TYPE_W L"System.Runtime.CompilerServices.FriendAccessAllowedAttribute" | 
|  | #define FRIEND_ACCESS_ALLOWED_ATTRIBUTE_TYPE "System.Runtime.CompilerServices.FriendAccessAllowedAttribute" | 
|  | #define FRIEND_ACCESS_ALLOWED_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define FRIEND_ASSEMBLY_TYPE_W L"System.Runtime.CompilerServices.InternalsVisibleToAttribute" | 
|  | #define FRIEND_ASSEMBLY_TYPE "System.Runtime.CompilerServices.InternalsVisibleToAttribute" | 
|  | #define FRIEND_ASSEMBLY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING, ELEMENT_TYPE_BOOLEAN} | 
|  |  | 
|  | #define DEFAULTDEPENDENCY_TYPE_W L"System.Runtime.CompilerServices.DefaultDependencyAttribute" | 
|  | #define DEFAULTDEPENDENCY_TYPE "System.Runtime.CompilerServices.DefaultDependencyAttribute" | 
|  |  | 
|  | #define DEFAULTDOMAIN_LOADEROPTIMIZATION_TYPE_W L"System.LoaderOptimizationAttribute" | 
|  | #define DEFAULTDOMAIN_LOADEROPTIMIZATION_TYPE "System.LoaderOptimizationAttribute" | 
|  | #define DEFAULTDOMAIN_LOADEROPTIMIZATION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I1} | 
|  | #define DEFAULTDOMAIN_MTA_TYPE_W L"System.MTAThreadAttribute" | 
|  | #define DEFAULTDOMAIN_MTA_TYPE "System.MTAThreadAttribute" | 
|  | #define DEFAULTDOMAIN_MTA_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  | #define DEFAULTDOMAIN_STA_TYPE_W L"System.STAThreadAttribute" | 
|  | #define DEFAULTDOMAIN_STA_TYPE "System.STAThreadAttribute" | 
|  | #define DEFAULTDOMAIN_STA_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} | 
|  |  | 
|  | #define DEPENDENCY_TYPE_W L"System.Runtime.CompilerServices.DependencyAttribute" | 
|  | #define DEPENDENCY_TYPE "System.Runtime.CompilerServices.DependencyAttribute" | 
|  |  | 
|  | #define RUNTIMECOMPATIBILITY_TYPE_W L"System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" | 
|  | #define RUNTIMECOMPATIBILITY_TYPE "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" | 
|  |  | 
|  | #define TARGET_FRAMEWORK_TYPE_W L"System.Runtime.Versioning.TargetFrameworkAttribute" | 
|  | #define TARGET_FRAMEWORK_TYPE "System.Runtime.Versioning.TargetFrameworkAttribute" | 
|  |  | 
|  | #define TARGETEDPATCHBAND_W L"System.Runtime.AssemblyTargetedPatchBandAttribute" | 
|  | #define TARGETEDPATCHBAND "System.Runtime.AssemblyTargetedPatchBandAttribute" | 
|  | #define TARGETEDPATCHOPTOUT_W L"System.Runtime.TargetedPatchingOptOutAttribute" | 
|  | #define TARGETEDPATCHOPTOUT "System.Runtime.TargetedPatchingOptOutAttribute" | 
|  |  | 
|  | #define COMPILATIONRELAXATIONS_TYPE_W L"System.Runtime.CompilerServices.CompilationRelaxationsAttribute" | 
|  | #define COMPILATIONRELAXATIONS_TYPE "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |