corhdr.h 50 KB

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