fusion: Implement IAssemblyName::IsEqual.
[wine] / include / corhdr.h
1 /*
2  * Copyright 2008 James Hawkins
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #ifndef __WINE_CORHDR_H
20 #define __WINE_CORHDR_H
21
22 typedef enum CorTokenType
23 {
24     mdtModule                   = 0x00000000,
25     mdtTypeRef                  = 0x01000000,
26     mdtTypeDef                  = 0x02000000,
27     mdtFieldDef                 = 0x04000000,
28     mdtMethodDef                = 0x06000000,
29     mdtParamDef                 = 0x08000000,
30     mdtInterfaceImpl            = 0x09000000,
31     mdtMemberRef                = 0x0a000000,
32     mdtCustomAttribute          = 0x0c000000,
33     mdtPermission               = 0x0e000000,
34     mdtSignature                = 0x11000000,
35     mdtEvent                    = 0x14000000,
36     mdtProperty                 = 0x17000000,
37     mdtModuleRef                = 0x1a000000,
38     mdtTypeSpec                 = 0x1b000000,
39     mdtAssembly                 = 0x20000000,
40     mdtAssemblyRef              = 0x23000000,
41     mdtFile                     = 0x26000000,
42     mdtExportedType             = 0x27000000,
43     mdtManifestResource         = 0x28000000,
44     mdtGenericParam             = 0x2a000000,
45     mdtMethodSpec               = 0x2b000000,
46     mdtGenericParamConstraint   = 0x2c000000,
47     mdtString                   = 0x70000000,
48     mdtName                     = 0x71000000,
49     mdtBaseType                 = 0x72000000,
50 } CorTokenType;
51
52 typedef enum CorElementType
53 {
54     ELEMENT_TYPE_END            = 0x00,
55     ELEMENT_TYPE_VOID           = 0x01,
56     ELEMENT_TYPE_BOOLEAN        = 0x02,
57     ELEMENT_TYPE_CHAR           = 0x03,
58     ELEMENT_TYPE_I1             = 0x04,
59     ELEMENT_TYPE_U1             = 0x05,
60     ELEMENT_TYPE_I2             = 0x06,
61     ELEMENT_TYPE_U2             = 0x07,
62     ELEMENT_TYPE_I4             = 0x08,
63     ELEMENT_TYPE_U4             = 0x09,
64     ELEMENT_TYPE_I8             = 0x0a,
65     ELEMENT_TYPE_U8             = 0x0b,
66     ELEMENT_TYPE_R4             = 0x0c,
67     ELEMENT_TYPE_R8             = 0x0d,
68     ELEMENT_TYPE_STRING         = 0x0e,
69     ELEMENT_TYPE_PTR            = 0x0f,
70     ELEMENT_TYPE_BYREF          = 0x10,
71     ELEMENT_TYPE_VALUETYPE      = 0x11,
72     ELEMENT_TYPE_CLASS          = 0x12,
73     ELEMENT_TYPE_VAR            = 0x13,
74     ELEMENT_TYPE_ARRAY          = 0x14,
75     ELEMENT_TYPE_GENERICINST    = 0x15,
76     ELEMENT_TYPE_TYPEDBYREF     = 0x16,
77     ELEMENT_TYPE_I              = 0x18,
78     ELEMENT_TYPE_U              = 0x19,
79     ELEMENT_TYPE_FNPTR          = 0x1b,
80     ELEMENT_TYPE_OBJECT         = 0x1c,
81     ELEMENT_TYPE_SZARRAY        = 0x1d,
82     ELEMENT_TYPE_MVAR           = 0x1e,
83     ELEMENT_TYPE_CMOD_REQD      = 0x1f,
84     ELEMENT_TYPE_CMOD_OPT       = 0x20,
85     ELEMENT_TYPE_INTERNAL       = 0x21,
86     ELEMENT_TYPE_MAX            = 0x22,
87     ELEMENT_TYPE_MODIFIER       = 0x40,
88     ELEMENT_TYPE_SENTINEL       = 0x01 | ELEMENT_TYPE_MODIFIER,
89     ELEMENT_TYPE_PINNED         = 0x05 | ELEMENT_TYPE_MODIFIER,
90     ELEMENT_TYPE_R4_HFA         = 0x06 | ELEMENT_TYPE_MODIFIER,
91     ELEMENT_TYPE_R8_HFA         = 0x07 | ELEMENT_TYPE_MODIFIER,
92
93 } CorElementType;
94
95 #define RidToToken(rid,tktype) ((rid) |= (tktype))
96 #define TokenFromRid(rid,tktype) ((rid) | (tktype))
97 #define RidFromToken(tk) ((RID)((tk) & 0x00ffffff))
98 #define TypeFromToken(tk) ((ULONG32)((tk) & 0xff000000))
99 #define IsNilToken(tk) ((RidFromToken(tk)) == 0)
100
101 typedef LPVOID  mdScope;
102 typedef ULONG32 mdToken;
103
104 typedef mdToken mdModule;
105 typedef mdToken mdTypeRef;
106 typedef mdToken mdTypeDef;
107 typedef mdToken mdFieldDef;
108 typedef mdToken mdMethodDef;
109 typedef mdToken mdParamDef;
110 typedef mdToken mdInterfaceImpl;
111 typedef mdToken mdMemberRef;
112 typedef mdToken mdCustomAttribute;
113 typedef mdToken mdPermission;
114 typedef mdToken mdSignature;
115 typedef mdToken mdEvent;
116 typedef mdToken mdProperty;
117 typedef mdToken mdModuleRef;
118 typedef mdToken mdAssembly;
119 typedef mdToken mdAssemblyRef;
120 typedef mdToken mdFile;
121 typedef mdToken mdExportedType;
122 typedef mdToken mdManifestResource;
123 typedef mdToken mdTypeSpec;
124 typedef mdToken mdGenericParam;
125 typedef mdToken mdMethodSpec;
126 typedef mdToken mdGenericParamConstraint;
127 typedef mdToken mdString;
128 typedef mdToken mdCPToken;
129
130 #endif /* __WINE_CORHDR_H */