1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
6 using System.Runtime.InteropServices;
9 #region sequential stuct definition
10 [StructLayout(LayoutKind.Sequential)]
11 public struct S_INTArray_Seq
13 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
17 [StructLayout(LayoutKind.Sequential)]
18 public struct S_UINTArray_Seq
20 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
24 [StructLayout(LayoutKind.Sequential)]
25 public struct S_SHORTArray_Seq
27 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
31 [StructLayout(LayoutKind.Sequential)]
32 public struct S_WORDArray_Seq
34 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
38 [StructLayout(LayoutKind.Sequential)]
39 public struct S_LONG64Array_Seq
41 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
45 [StructLayout(LayoutKind.Sequential)]
46 public struct S_ULONG64Array_Seq
48 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
52 [StructLayout(LayoutKind.Sequential)]
53 public struct S_DOUBLEArray_Seq
55 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
59 [StructLayout(LayoutKind.Sequential)]
60 public struct S_FLOATArray_Seq
62 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
66 [StructLayout(LayoutKind.Sequential)]
67 public struct S_BYTEArray_Seq
69 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
73 [StructLayout(LayoutKind.Sequential)]
74 public struct S_CHARArray_Seq
76 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
80 [StructLayout(LayoutKind.Sequential)]
81 public struct S_LPSTRArray_Seq
83 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
87 [StructLayout(LayoutKind.Sequential)]
88 public struct S_LPCSTRArray_Seq
90 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
94 [StructLayout(LayoutKind.Sequential)]
95 public struct S_BSTRArray_Seq
97 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE, ArraySubType = UnmanagedType.BStr)]
101 //struct array in a struct
102 [StructLayout(LayoutKind.Sequential)]
103 public struct TestStruct
111 [StructLayout(LayoutKind.Sequential)]
112 public struct S_StructArray_Seq
114 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
115 public TestStruct[] arr;
118 [StructLayout(LayoutKind.Sequential)]
119 public struct S_BOOLArray_Seq
121 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
126 #region sequential class definition
127 [StructLayout(LayoutKind.Sequential)]
128 public class C_INTArray_Seq
130 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
134 [StructLayout(LayoutKind.Sequential)]
135 public class C_UINTArray_Seq
137 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
141 [StructLayout(LayoutKind.Sequential)]
142 public class C_SHORTArray_Seq
144 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
148 [StructLayout(LayoutKind.Sequential)]
149 public class C_WORDArray_Seq
151 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
155 [StructLayout(LayoutKind.Sequential)]
156 public class C_LONG64Array_Seq
158 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
162 [StructLayout(LayoutKind.Sequential)]
163 public class C_ULONG64Array_Seq
165 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
169 [StructLayout(LayoutKind.Sequential)]
170 public class C_DOUBLEArray_Seq
172 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
176 [StructLayout(LayoutKind.Sequential)]
177 public class C_FLOATArray_Seq
179 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
183 [StructLayout(LayoutKind.Sequential)]
184 public class C_BYTEArray_Seq
186 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
190 [StructLayout(LayoutKind.Sequential)]
191 public class C_CHARArray_Seq
193 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
197 [StructLayout(LayoutKind.Sequential)]
198 public class C_LPSTRArray_Seq
200 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
204 [StructLayout(LayoutKind.Sequential)]
205 public class C_LPCSTRArray_Seq
207 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
211 [StructLayout(LayoutKind.Sequential)]
212 public class C_BSTRArray_Seq
214 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE, ArraySubType = UnmanagedType.BStr)]
218 //struct array in a class
219 [StructLayout(LayoutKind.Sequential)]
220 public class C_StructArray_Seq
222 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
223 public TestStruct[] arr;
226 [StructLayout(LayoutKind.Sequential)]
227 public class C_BOOLArray_Seq
229 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
237 #region explicit stuct definition
238 [StructLayout(LayoutKind.Explicit)]
239 public struct S_INTArray_Exp
242 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
246 [StructLayout(LayoutKind.Explicit)]
247 public struct S_UINTArray_Exp
250 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
254 [StructLayout(LayoutKind.Explicit)]
255 public struct S_SHORTArray_Exp
258 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
262 [StructLayout(LayoutKind.Explicit)]
263 public struct S_WORDArray_Exp
266 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
270 [StructLayout(LayoutKind.Explicit)]
271 public struct S_LONG64Array_Exp
274 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE, ArraySubType = UnmanagedType.I8)]
278 [StructLayout(LayoutKind.Explicit)]
279 public struct S_ULONG64Array_Exp
282 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
286 [StructLayout(LayoutKind.Explicit)]
287 public struct S_DOUBLEArray_Exp
290 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
294 [StructLayout(LayoutKind.Explicit)]
295 public struct S_FLOATArray_Exp
298 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
302 [StructLayout(LayoutKind.Explicit)]
303 public struct S_BYTEArray_Exp
306 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
310 [StructLayout(LayoutKind.Explicit)]
311 public struct S_CHARArray_Exp
314 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
318 [StructLayout(LayoutKind.Explicit)]
319 public struct S_LPSTRArray_Exp
322 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
326 [StructLayout(LayoutKind.Explicit)]
327 public struct S_LPCSTRArray_Exp
330 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
334 [StructLayout(LayoutKind.Explicit)]
335 public struct S_BSTRArray_Exp
338 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE, ArraySubType = UnmanagedType.BStr)]
342 //struct array in a struct
343 [StructLayout(LayoutKind.Explicit)]
344 public struct S_StructArray_Exp
347 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
348 public TestStruct[] arr;
351 [StructLayout(LayoutKind.Explicit)]
352 public struct S_BOOLArray_Exp
355 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
360 #region explicit class definition
361 [StructLayout(LayoutKind.Explicit)]
362 public class C_INTArray_Exp
365 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
369 [StructLayout(LayoutKind.Explicit)]
370 public class C_UINTArray_Exp
373 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
377 [StructLayout(LayoutKind.Explicit)]
378 public class C_SHORTArray_Exp
381 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
385 [StructLayout(LayoutKind.Explicit)]
386 public class C_WORDArray_Exp
389 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
393 [StructLayout(LayoutKind.Explicit, Pack = 8)]
394 public class C_LONG64Array_Exp
397 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
401 [StructLayout(LayoutKind.Explicit)]
402 public class C_ULONG64Array_Exp
405 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
409 [StructLayout(LayoutKind.Explicit)]
410 public class C_DOUBLEArray_Exp
413 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
417 [StructLayout(LayoutKind.Explicit)]
418 public class C_FLOATArray_Exp
421 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
425 [StructLayout(LayoutKind.Explicit)]
426 public class C_BYTEArray_Exp
429 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
433 [StructLayout(LayoutKind.Explicit)]
434 public class C_CHARArray_Exp
437 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
441 [StructLayout(LayoutKind.Explicit)]
442 public class C_LPSTRArray_Exp
445 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
449 [StructLayout(LayoutKind.Explicit)]
450 public class C_LPCSTRArray_Exp
453 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
457 [StructLayout(LayoutKind.Explicit)]
458 public class C_BSTRArray_Exp
461 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE, ArraySubType = UnmanagedType.BStr)]
465 //struct array in a class
466 [StructLayout(LayoutKind.Explicit)]
467 public class C_StructArray_Exp
470 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]
471 public TestStruct[] arr;
474 [StructLayout(LayoutKind.Explicit)]
475 public class C_BOOLArray_Exp
478 [MarshalAs(UnmanagedType.LPArray, SizeConst = Test.ARRAY_SIZE)]