Added piles of new enumerations from Sergey.
[mono.git] / mcs / class / corlib / System.Runtime.InteropServices / UnmanagedType.cs
1 // UnmanagedType.cs\r
2 //\r
3 // This code was automatically generated from\r
4 // ECMA CLI XML Library Specification.\r
5 // Generator: libgen.xsl\r
6 // Source file: all.xml\r
7 // URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
8 //\r
9 // (C) 2001 Ximian, Inc.  http://www.ximian.com\r
10 \r
11 \r
12 namespace System.Runtime.InteropServices {\r
13 \r
14 \r
15         /// <summary>\r
16         /// <para>\r
17         ///                       Identifies how parameters or fields should be marshaled to unmanaged\r
18         ///                       code.\r
19         ///                </para>\r
20         /// </summary>\r
21         public enum UnmanagedType {\r
22 \r
23                 /// <summary>\r
24                 /// <para>\r
25                 ///                       4-byte Boolean value (<see langword="true " />!= 0, <see langword="false " />=\r
26                 ///                       0).\r
27                 ///                </para>\r
28                 /// </summary>\r
29                 Bool = 2,\r
30 \r
31                 /// <summary>\r
32                 /// <para>\r
33                 ///                       1-byte signed integer.\r
34                 ///                </para>\r
35                 /// </summary>\r
36                 I1 = 3,\r
37 \r
38                 /// <summary>\r
39                 /// <para>\r
40                 ///                       1-byte unsigned integer.\r
41                 ///                </para>\r
42                 /// </summary>\r
43                 U1 = 4,\r
44 \r
45                 /// <summary>\r
46                 /// <para>\r
47                 ///                       2-byte signed integer.\r
48                 ///                </para>\r
49                 /// </summary>\r
50                 I2 = 5,\r
51 \r
52                 /// <summary>\r
53                 /// <para>\r
54                 ///                       2-byte unsigned integer.\r
55                 ///                </para>\r
56                 /// </summary>\r
57                 U2 = 6,\r
58 \r
59                 /// <summary>\r
60                 /// <para>\r
61                 ///                       4-byte signed integer.\r
62                 ///                </para>\r
63                 /// </summary>\r
64                 I4 = 7,\r
65 \r
66                 /// <summary>\r
67                 /// <para>\r
68                 ///                       4-byte unsigned integer.\r
69                 ///                </para>\r
70                 /// </summary>\r
71                 U4 = 8,\r
72 \r
73                 /// <summary>\r
74                 /// <para>\r
75                 ///                       8-byte signed integer.\r
76                 ///                </para>\r
77                 /// </summary>\r
78                 I8 = 9,\r
79 \r
80                 /// <summary>\r
81                 /// <para>\r
82                 ///                       8-byte unsigned integer.\r
83                 ///                </para>\r
84                 /// </summary>\r
85                 U8 = 10,\r
86 \r
87                 /// <summary>\r
88                 /// <para>\r
89                 ///                       4-byte floating point number.\r
90                 ///                </para>\r
91                 /// </summary>\r
92                 R4 = 11,\r
93 \r
94                 /// <summary>\r
95                 /// <para>\r
96                 ///                       8-byte floating point number.\r
97                 ///                </para>\r
98                 /// </summary>\r
99                 R8 = 12,\r
100 \r
101                 /// <summary>\r
102                 /// <para>\r
103                 ///                       Unicode character string that is a length prefixed double\r
104                 ///                       byte.\r
105                 ///                </para>\r
106                 /// </summary>\r
107                 BStr = 19,\r
108 \r
109                 /// <summary>\r
110                 /// <para>\r
111                 ///                       A single byte ANSI character string.\r
112                 ///                </para>\r
113                 /// </summary>\r
114                 LPStr = 20,\r
115 \r
116                 /// <summary>\r
117                 /// <para>\r
118                 ///                       A double byte Unicode character string.\r
119                 ///                </para>\r
120                 /// </summary>\r
121                 LPWStr = 21,\r
122 \r
123                 /// <summary>\r
124                 /// <para>\r
125                 ///                       A platform independent character string, ANSI on Win9x, Unicode on WinNT.\r
126                 ///                </para>\r
127                 /// </summary>\r
128                 LPTStr = 22,\r
129 \r
130                 /// <summary>\r
131                 /// <para>Used for in-line fixed length character arrays that \r
132                 ///                   appear within a structure. The character type used with\r
133                 ///                <see langword="ByValTStr" /> is determined by the <see cref="T:System.Runtime.InteropServices.CharSet" /> argument of the <see cref="T:System.Runtime.InteropServices.StructLayoutAttribute" /> \r
134                 ///                applied to the containing structure.</para>\r
135                 /// </summary>\r
136                 ByValTStr = 23,\r
137 \r
138                 /// <summary>\r
139                 /// <para>A COM <see langword="IUnknown" /> pointer. This only applies to a generic object, not a derived class.</para>\r
140                 /// </summary>\r
141                 IUnknown = 25,\r
142 \r
143                 /// <summary>\r
144                 /// <para>A COM IDispatch pointer. This only applies to a generic object, not a derived class.</para>\r
145                 /// </summary>\r
146                 IDispatch = 26,\r
147 \r
148                 /// <summary>\r
149                 /// <para>\r
150                 ///                       A C-style structure, used to marshal managed formatted classes and value\r
151                 ///                       types.\r
152                 ///                </para>\r
153                 /// </summary>\r
154                 Struct = 27,\r
155 \r
156                 /// <summary>\r
157                 /// <para>A COM interface pointer. The <see cref="T:System.Guid" /> of the interface is obtained from the class\r
158                 ///                metadata.</para>\r
159                 /// </summary>\r
160                 Interface = 28,\r
161 \r
162                 /// <summary>\r
163                 ///                SafeArrays are self-describing arrays that carry the\r
164                 ///                type, rank and bounds of the associated array data.\r
165                 ///             </summary>\r
166                 SafeArray = 29,\r
167 \r
168                 /// <summary>\r
169                 /// <para>\r
170                 ///                       A fixed length array. The UnmanagedFormatAttribute must contain the count of\r
171                 ///                       elements in the array. The UnmanagedFormatAttribute may optionally contain the\r
172                 ///                       unmanaged type of the elements when it is necessary to differentiate among\r
173                 ///                       string types.\r
174                 ///                </para>\r
175                 /// </summary>\r
176                 ByValArray = 30,\r
177 \r
178                 /// <summary>\r
179                 /// <para>\r
180                 ///                       A platform independent signed integer. 4-bytes on 32 bit Windows, 8-bytes on\r
181                 ///                       64 bit Windows.\r
182                 ///                </para>\r
183                 /// </summary>\r
184                 SysInt = 31,\r
185 \r
186                 /// <summary>\r
187                 /// <para>\r
188                 ///                       Hardware natural sized unsigned integer\r
189                 ///                </para>\r
190                 /// </summary>\r
191                 SysUInt = 32,\r
192 \r
193                 /// <summary>\r
194                 /// <para>\r
195                 ///                       VB specific.\r
196                 ///                </para>\r
197                 /// </summary>\r
198                 VBByRefStr = 34,\r
199 \r
200                 /// <summary>\r
201                 /// <para>\r
202                 ///                       ANSI character string that is a length prefixed, single byte.\r
203                 ///                </para>\r
204                 /// </summary>\r
205                 AnsiBStr = 35,\r
206 \r
207                 /// <summary>\r
208                 /// <para>\r
209                 ///                       A length prefixed platform independent char string. ANSI on Windows 9x,\r
210                 ///                       Unicode on Windows NT.\r
211                 ///                </para>\r
212                 /// </summary>\r
213                 TBStr = 36,\r
214 \r
215                 /// <summary>\r
216                 /// <para>\r
217                 ///                       8-byte unsigned integer.\r
218                 ///                </para>\r
219                 /// </summary>\r
220                 VariantBool = 37,\r
221 \r
222                 /// <summary>\r
223                 /// <para>\r
224                 ///                       A function pointer.\r
225                 ///                </para>\r
226                 /// </summary>\r
227                 FunctionPtr = 38,\r
228 \r
229                 /// <summary>\r
230                 /// <para>\r
231                 ///                       An un-typed 4-byte pointer.\r
232                 ///                </para>\r
233                 /// </summary>\r
234                 LPVoid = 39,\r
235 \r
236                 /// <summary>\r
237                 /// <para>Dynamic type that determines the <see cref="T:System.Type" /> of an object at \r
238                 ///                runtime and marshals the object as that <see cref="T:System.Type" />\r
239                 ///                .</para>\r
240                 /// </summary>\r
241                 AsAny = 40,\r
242 \r
243                 /// <summary>\r
244                 /// <para>\r
245                 ///                       Size agnostic floating point number.\r
246                 ///                </para>\r
247                 /// </summary>\r
248                 RPrecise = 41,\r
249 \r
250                 /// <summary>\r
251                 /// <para>An array whose length is determined at runtime by the size of the actual\r
252                 ///                   marshaled array. Optionally followed by the unmanaged type of the elements\r
253                 ///                   within the array when it is necessary to differentiate among string types. When\r
254                 ///                   marshaling from managed to unmanaged, the size of the array is determined\r
255                 ///                   dynamically. When marshaling from unmanaged to managed, the size is always\r
256                 ///                   assumed to be 1.</para>\r
257                 /// </summary>\r
258                 LPArray = 42,\r
259 \r
260                 /// <summary>\r
261                 /// <para>\r
262                 ///                       A pointer to a C-style structure. Used to marshal managed formatted classes\r
263                 ///                       and value types.\r
264                 ///                </para>\r
265                 /// </summary>\r
266                 LPStruct = 43,\r
267 \r
268                 /// <summary>\r
269                 /// <para>\r
270                 ///                       Custom marshaler native type. This must be followed \r
271                 ///                       by a string of the following format:\r
272                 ///                       "Native type name\0Custom marshaler type name\0Optional cookie\0"\r
273                 ///                       Or\r
274                 ///                       "{Native type GUID}\0Custom marshaler type name\0Optional cookie\0"\r
275                 ///                </para>\r
276                 /// </summary>\r
277                 CustomMarshaler = 44,\r
278 \r
279                 /// <summary>\r
280                 /// <para>This native type associated with an <see cref="F:System.Runtime.InteropServices.UnmanagedType.I4" /> or a <see cref="F:System.Runtime.InteropServices.UnmanagedType.U4" /> will cause the parameter\r
281                 ///                to be exported as an HRESULT in the exported typelib.</para>\r
282                 /// </summary>\r
283                 Error = 45,\r
284 \r
285                 /// <summary>\r
286                 /// <para>First invalid element type. </para>\r
287                 /// </summary>\r
288                 NativeTypeMax = 80,\r
289         } // UnmanagedType\r
290 \r
291 } // System.Runtime.InteropServices\r