View | Details | Raw Unified | Return to bug 465825
Collapse All | Expand All

(-)mono.orig/mono/tests/cominterop.cs (-66 / +89 lines)
Lines 11-104 Link Here
11
public class Tests
11
public class Tests
12
{
12
{
13
13
14
	[DllImport("libtest")]
14
#if WIN32
15
	private const string libName = "libtest";
16
#else
17
	private const string libName = "test";
18
#endif
19
	[DllImport(libName)]
15
	public static extern int mono_test_marshal_bstr_in([MarshalAs(UnmanagedType.BStr)]string str);
20
	public static extern int mono_test_marshal_bstr_in([MarshalAs(UnmanagedType.BStr)]string str);
16
21
17
	[DllImport("libtest")]
22
	[DllImport(libName)]
18
    public static extern int mono_test_marshal_bstr_out([MarshalAs(UnmanagedType.BStr)] out string str);
23
    public static extern int mono_test_marshal_bstr_out([MarshalAs(UnmanagedType.BStr)] out string str);
19
24
20
    [DllImport("libtest")]
25
    [DllImport(libName)]
21
    public static extern int mono_test_marshal_bstr_in_null([MarshalAs(UnmanagedType.BStr)]string str);
26
    public static extern int mono_test_marshal_bstr_in_null([MarshalAs(UnmanagedType.BStr)]string str);
22
27
23
    [DllImport("libtest")]
28
    [DllImport(libName)]
24
    public static extern int mono_test_marshal_bstr_out_null([MarshalAs(UnmanagedType.BStr)] out string str);
29
    public static extern int mono_test_marshal_bstr_out_null([MarshalAs(UnmanagedType.BStr)] out string str);
25
30
26
	[DllImport("libtest")]
31
	[DllImport(libName)]
27
	public static extern int mono_test_marshal_variant_in_sbyte([MarshalAs(UnmanagedType.Struct)]object obj);
32
	public static extern int mono_test_marshal_variant_in_sbyte([MarshalAs(UnmanagedType.Struct)]object obj);
28
33
29
	[DllImport("libtest")]
34
	[DllImport(libName)]
30
	public static extern int mono_test_marshal_variant_in_byte([MarshalAs(UnmanagedType.Struct)]object obj);
35
	public static extern int mono_test_marshal_variant_in_byte([MarshalAs(UnmanagedType.Struct)]object obj);
31
36
32
	[DllImport("libtest")]
37
	[DllImport(libName)]
33
	public static extern int mono_test_marshal_variant_in_short([MarshalAs(UnmanagedType.Struct)]object obj);
38
	public static extern int mono_test_marshal_variant_in_short([MarshalAs(UnmanagedType.Struct)]object obj);
34
39
35
	[DllImport("libtest")]
40
	[DllImport(libName)]
36
	public static extern int mono_test_marshal_variant_in_ushort([MarshalAs(UnmanagedType.Struct)]object obj);
41
	public static extern int mono_test_marshal_variant_in_ushort([MarshalAs(UnmanagedType.Struct)]object obj);
37
42
38
	[DllImport("libtest")]
43
	[DllImport(libName)]
39
	public static extern int mono_test_marshal_variant_in_int([MarshalAs(UnmanagedType.Struct)]object obj);
44
	public static extern int mono_test_marshal_variant_in_int([MarshalAs(UnmanagedType.Struct)]object obj);
40
45
41
	[DllImport("libtest")]
46
	[DllImport(libName)]
42
	public static extern int mono_test_marshal_variant_in_uint([MarshalAs(UnmanagedType.Struct)]object obj);
47
	public static extern int mono_test_marshal_variant_in_uint([MarshalAs(UnmanagedType.Struct)]object obj);
43
48
44
	[DllImport("libtest")]
49
	[DllImport(libName)]
45
	public static extern int mono_test_marshal_variant_in_long([MarshalAs(UnmanagedType.Struct)]object obj);
50
	public static extern int mono_test_marshal_variant_in_long([MarshalAs(UnmanagedType.Struct)]object obj);
46
51
47
	[DllImport("libtest")]
52
	[DllImport(libName)]
48
	public static extern int mono_test_marshal_variant_in_ulong([MarshalAs(UnmanagedType.Struct)]object obj);
53
	public static extern int mono_test_marshal_variant_in_ulong([MarshalAs(UnmanagedType.Struct)]object obj);
49
54
50
	[DllImport("libtest")]
55
	[DllImport(libName)]
51
	public static extern int mono_test_marshal_variant_in_float([MarshalAs(UnmanagedType.Struct)]object obj);
56
	public static extern int mono_test_marshal_variant_in_float([MarshalAs(UnmanagedType.Struct)]object obj);
52
57
53
	[DllImport("libtest")]
58
	[DllImport(libName)]
54
	public static extern int mono_test_marshal_variant_in_double([MarshalAs(UnmanagedType.Struct)]object obj);
59
	public static extern int mono_test_marshal_variant_in_double([MarshalAs(UnmanagedType.Struct)]object obj);
55
60
56
	[DllImport("libtest")]
61
	[DllImport(libName)]
57
	public static extern int mono_test_marshal_variant_in_bstr ([MarshalAs (UnmanagedType.Struct)]object obj);
62
	public static extern int mono_test_marshal_variant_in_bstr ([MarshalAs (UnmanagedType.Struct)]object obj);
58
63
59
	[DllImport ("libtest")]
64
	[DllImport (libName)]
60
	public static extern int mono_test_marshal_variant_in_bool_true ([MarshalAs (UnmanagedType.Struct)]object obj);
65
	public static extern int mono_test_marshal_variant_in_bool_true ([MarshalAs (UnmanagedType.Struct)]object obj);
61
66
62
	[DllImport ("libtest")]
67
	[DllImport (libName)]
63
	public static extern int mono_test_marshal_variant_in_bool_false ([MarshalAs (UnmanagedType.Struct)]object obj);
68
	public static extern int mono_test_marshal_variant_in_bool_false ([MarshalAs (UnmanagedType.Struct)]object obj);
64
69
65
	[DllImport("libtest")]
70
	[DllImport(libName)]
66
	public static extern int mono_test_marshal_variant_out_sbyte([MarshalAs(UnmanagedType.Struct)]out object obj);
71
	public static extern int mono_test_marshal_variant_out_sbyte([MarshalAs(UnmanagedType.Struct)]out object obj);
67
72
68
	[DllImport("libtest")]
73
	[DllImport(libName)]
69
	public static extern int mono_test_marshal_variant_out_byte([MarshalAs(UnmanagedType.Struct)]out object obj);
74
	public static extern int mono_test_marshal_variant_out_byte([MarshalAs(UnmanagedType.Struct)]out object obj);
70
75
71
	[DllImport("libtest")]
76
	[DllImport(libName)]
72
	public static extern int mono_test_marshal_variant_out_short([MarshalAs(UnmanagedType.Struct)]out object obj);
77
	public static extern int mono_test_marshal_variant_out_short([MarshalAs(UnmanagedType.Struct)]out object obj);
73
78
74
	[DllImport("libtest")]
79
	[DllImport(libName)]
75
	public static extern int mono_test_marshal_variant_out_ushort([MarshalAs(UnmanagedType.Struct)]out object obj);
80
	public static extern int mono_test_marshal_variant_out_ushort([MarshalAs(UnmanagedType.Struct)]out object obj);
76
81
77
	[DllImport("libtest")]
82
	[DllImport(libName)]
78
	public static extern int mono_test_marshal_variant_out_int([MarshalAs(UnmanagedType.Struct)]out object obj);
83
	public static extern int mono_test_marshal_variant_out_int([MarshalAs(UnmanagedType.Struct)]out object obj);
79
84
80
	[DllImport("libtest")]
85
	[DllImport(libName)]
81
	public static extern int mono_test_marshal_variant_out_uint([MarshalAs(UnmanagedType.Struct)]out object obj);
86
	public static extern int mono_test_marshal_variant_out_uint([MarshalAs(UnmanagedType.Struct)]out object obj);
82
87
83
	[DllImport("libtest")]
88
	[DllImport(libName)]
84
	public static extern int mono_test_marshal_variant_out_long([MarshalAs(UnmanagedType.Struct)]out object obj);
89
	public static extern int mono_test_marshal_variant_out_long([MarshalAs(UnmanagedType.Struct)]out object obj);
85
90
86
	[DllImport("libtest")]
91
	[DllImport(libName)]
87
	public static extern int mono_test_marshal_variant_out_ulong([MarshalAs(UnmanagedType.Struct)]out object obj);
92
	public static extern int mono_test_marshal_variant_out_ulong([MarshalAs(UnmanagedType.Struct)]out object obj);
88
93
89
	[DllImport("libtest")]
94
	[DllImport(libName)]
90
	public static extern int mono_test_marshal_variant_out_float([MarshalAs(UnmanagedType.Struct)]out object obj);
95
	public static extern int mono_test_marshal_variant_out_float([MarshalAs(UnmanagedType.Struct)]out object obj);
91
96
92
	[DllImport("libtest")]
97
	[DllImport(libName)]
93
	public static extern int mono_test_marshal_variant_out_double([MarshalAs(UnmanagedType.Struct)]out object obj);
98
	public static extern int mono_test_marshal_variant_out_double([MarshalAs(UnmanagedType.Struct)]out object obj);
94
99
95
	[DllImport("libtest")]
100
	[DllImport(libName)]
96
	public static extern int mono_test_marshal_variant_out_bstr ([MarshalAs (UnmanagedType.Struct)]out object obj);
101
	public static extern int mono_test_marshal_variant_out_bstr ([MarshalAs (UnmanagedType.Struct)]out object obj);
97
102
98
	[DllImport("libtest")]
103
	[DllImport(libName)]
99
	public static extern int mono_test_marshal_variant_out_bool_true ([MarshalAs (UnmanagedType.Struct)]out object obj);
104
	public static extern int mono_test_marshal_variant_out_bool_true ([MarshalAs (UnmanagedType.Struct)]out object obj);
100
105
101
	[DllImport ("libtest")]
106
	[DllImport (libName)]
102
	public static extern int mono_test_marshal_variant_out_bool_false ([MarshalAs (UnmanagedType.Struct)]out object obj);
107
	public static extern int mono_test_marshal_variant_out_bool_false ([MarshalAs (UnmanagedType.Struct)]out object obj);
103
108
104
109
Lines 106-214 Link Here
106
111
107
	public delegate int VarRefFunc (VarEnum vt, [MarshalAs (UnmanagedType.Struct)] ref object obj);
112
	public delegate int VarRefFunc (VarEnum vt, [MarshalAs (UnmanagedType.Struct)] ref object obj);
108
113
109
	[DllImport ("libtest")]
114
	[DllImport (libName)]
110
	public static extern int mono_test_marshal_variant_in_sbyte_unmanaged (VarFunc func);
115
	public static extern int mono_test_marshal_variant_in_sbyte_unmanaged (VarFunc func);
111
116
112
	[DllImport ("libtest")]
117
	[DllImport (libName)]
113
	public static extern int mono_test_marshal_variant_in_byte_unmanaged (VarFunc func);
118
	public static extern int mono_test_marshal_variant_in_byte_unmanaged (VarFunc func);
114
119
115
	[DllImport ("libtest")]
120
	[DllImport (libName)]
116
	public static extern int mono_test_marshal_variant_in_short_unmanaged (VarFunc func);
121
	public static extern int mono_test_marshal_variant_in_short_unmanaged (VarFunc func);
117
122
118
	[DllImport ("libtest")]
123
	[DllImport (libName)]
119
	public static extern int mono_test_marshal_variant_in_ushort_unmanaged (VarFunc func);
124
	public static extern int mono_test_marshal_variant_in_ushort_unmanaged (VarFunc func);
120
125
121
	[DllImport ("libtest")]
126
	[DllImport (libName)]
122
	public static extern int mono_test_marshal_variant_in_int_unmanaged (VarFunc func);
127
	public static extern int mono_test_marshal_variant_in_int_unmanaged (VarFunc func);
123
128
124
	[DllImport ("libtest")]
129
	[DllImport (libName)]
125
	public static extern int mono_test_marshal_variant_in_uint_unmanaged (VarFunc func);
130
	public static extern int mono_test_marshal_variant_in_uint_unmanaged (VarFunc func);
126
131
127
	[DllImport ("libtest")]
132
	[DllImport (libName)]
128
	public static extern int mono_test_marshal_variant_in_long_unmanaged (VarFunc func);
133
	public static extern int mono_test_marshal_variant_in_long_unmanaged (VarFunc func);
129
134
130
	[DllImport ("libtest")]
135
	[DllImport (libName)]
131
	public static extern int mono_test_marshal_variant_in_ulong_unmanaged (VarFunc func);
136
	public static extern int mono_test_marshal_variant_in_ulong_unmanaged (VarFunc func);
132
137
133
	[DllImport ("libtest")]
138
	[DllImport (libName)]
134
	public static extern int mono_test_marshal_variant_in_float_unmanaged (VarFunc func);
139
	public static extern int mono_test_marshal_variant_in_float_unmanaged (VarFunc func);
135
140
136
	[DllImport ("libtest")]
141
	[DllImport (libName)]
137
	public static extern int mono_test_marshal_variant_in_double_unmanaged (VarFunc func);
142
	public static extern int mono_test_marshal_variant_in_double_unmanaged (VarFunc func);
138
143
139
	[DllImport ("libtest")]
144
	[DllImport (libName)]
140
	public static extern int mono_test_marshal_variant_in_bstr_unmanaged (VarFunc func);
145
	public static extern int mono_test_marshal_variant_in_bstr_unmanaged (VarFunc func);
141
146
142
	[DllImport ("libtest")]
147
	[DllImport (libName)]
143
	public static extern int mono_test_marshal_variant_in_bool_true_unmanaged (VarFunc func);
148
	public static extern int mono_test_marshal_variant_in_bool_true_unmanaged (VarFunc func);
144
149
145
	[DllImport ("libtest")]
150
	[DllImport (libName)]
146
	public static extern int mono_test_marshal_variant_in_bool_false_unmanaged (VarFunc func);
151
	public static extern int mono_test_marshal_variant_in_bool_false_unmanaged (VarFunc func);
147
152
148
	[DllImport ("libtest")]
153
	[DllImport (libName)]
149
	public static extern int mono_test_marshal_variant_out_sbyte_unmanaged (VarRefFunc func);
154
	public static extern int mono_test_marshal_variant_out_sbyte_unmanaged (VarRefFunc func);
150
155
151
	[DllImport ("libtest")]
156
	[DllImport (libName)]
152
	public static extern int mono_test_marshal_variant_out_byte_unmanaged (VarRefFunc func);
157
	public static extern int mono_test_marshal_variant_out_byte_unmanaged (VarRefFunc func);
153
158
154
	[DllImport ("libtest")]
159
	[DllImport (libName)]
155
	public static extern int mono_test_marshal_variant_out_short_unmanaged (VarRefFunc func);
160
	public static extern int mono_test_marshal_variant_out_short_unmanaged (VarRefFunc func);
156
161
157
	[DllImport ("libtest")]
162
	[DllImport (libName)]
158
	public static extern int mono_test_marshal_variant_out_ushort_unmanaged (VarRefFunc func);
163
	public static extern int mono_test_marshal_variant_out_ushort_unmanaged (VarRefFunc func);
159
164
160
	[DllImport ("libtest")]
165
	[DllImport (libName)]
161
	public static extern int mono_test_marshal_variant_out_int_unmanaged (VarRefFunc func);
166
	public static extern int mono_test_marshal_variant_out_int_unmanaged (VarRefFunc func);
162
167
163
	[DllImport ("libtest")]
168
	[DllImport (libName)]
164
	public static extern int mono_test_marshal_variant_out_uint_unmanaged (VarRefFunc func);
169
	public static extern int mono_test_marshal_variant_out_uint_unmanaged (VarRefFunc func);
165
170
166
	[DllImport ("libtest")]
171
	[DllImport (libName)]
167
	public static extern int mono_test_marshal_variant_out_long_unmanaged (VarRefFunc func);
172
	public static extern int mono_test_marshal_variant_out_long_unmanaged (VarRefFunc func);
168
173
169
	[DllImport ("libtest")]
174
	[DllImport (libName)]
170
	public static extern int mono_test_marshal_variant_out_ulong_unmanaged (VarRefFunc func);
175
	public static extern int mono_test_marshal_variant_out_ulong_unmanaged (VarRefFunc func);
171
176
172
	[DllImport ("libtest")]
177
	[DllImport (libName)]
173
	public static extern int mono_test_marshal_variant_out_float_unmanaged (VarRefFunc func);
178
	public static extern int mono_test_marshal_variant_out_float_unmanaged (VarRefFunc func);
174
179
175
	[DllImport ("libtest")]
180
	[DllImport (libName)]
176
	public static extern int mono_test_marshal_variant_out_double_unmanaged (VarRefFunc func);
181
	public static extern int mono_test_marshal_variant_out_double_unmanaged (VarRefFunc func);
177
182
178
	[DllImport ("libtest")]
183
	[DllImport (libName)]
179
	public static extern int mono_test_marshal_variant_out_bstr_unmanaged (VarRefFunc func);
184
	public static extern int mono_test_marshal_variant_out_bstr_unmanaged (VarRefFunc func);
180
185
181
	[DllImport ("libtest")]
186
	[DllImport (libName)]
182
	public static extern int mono_test_marshal_variant_out_bool_true_unmanaged (VarRefFunc func);
187
	public static extern int mono_test_marshal_variant_out_bool_true_unmanaged (VarRefFunc func);
183
188
184
	[DllImport ("libtest")]
189
	[DllImport (libName)]
185
	public static extern int mono_test_marshal_variant_out_bool_false_unmanaged (VarRefFunc func);
190
	public static extern int mono_test_marshal_variant_out_bool_false_unmanaged (VarRefFunc func);
186
191
187
    [DllImport ("libtest")]
192
    [DllImport (libName)]
188
	public static extern int mono_test_marshal_com_object_create (out IntPtr pUnk);
193
	public static extern int mono_test_marshal_com_object_create (out IntPtr pUnk);
189
194
190
	[DllImport ("libtest")]
195
	[DllImport (libName)]
191
	public static extern int mono_test_marshal_com_object_same (out IntPtr pUnk);
196
	public static extern int mono_test_marshal_com_object_same (out IntPtr pUnk);
192
197
193
    [DllImport ("libtest")]
198
    [DllImport (libName)]
194
    public static extern int mono_test_marshal_com_object_destroy (IntPtr pUnk);
199
    public static extern int mono_test_marshal_com_object_destroy (IntPtr pUnk);
195
200
196
	[DllImport ("libtest")]
201
	[DllImport (libName)]
197
	public static extern int mono_test_marshal_com_object_ref_count (IntPtr pUnk);
202
	public static extern int mono_test_marshal_com_object_ref_count (IntPtr pUnk);
198
203
199
	[DllImport ("libtest")]
204
	[DllImport (libName)]
200
	public static extern int mono_test_marshal_ccw_identity ([MarshalAs (UnmanagedType.Interface)]ITest itest);
205
	public static extern int mono_test_marshal_ccw_identity ([MarshalAs (UnmanagedType.Interface)]ITest itest);
201
206
202
	[DllImport ("libtest")]
207
	[DllImport (libName)]
203
	public static extern int mono_test_marshal_ccw_reflexive ([MarshalAs (UnmanagedType.Interface)]ITest itest);
208
	public static extern int mono_test_marshal_ccw_reflexive ([MarshalAs (UnmanagedType.Interface)]ITest itest);
204
209
205
	[DllImport ("libtest")]
210
	[DllImport (libName)]
206
	public static extern int mono_test_marshal_ccw_transitive ([MarshalAs (UnmanagedType.Interface)]ITest itest);
211
	public static extern int mono_test_marshal_ccw_transitive ([MarshalAs (UnmanagedType.Interface)]ITest itest);
207
212
208
	[DllImport ("libtest")]
213
	[DllImport (libName)]
209
	public static extern int mono_test_marshal_ccw_itest ([MarshalAs (UnmanagedType.Interface)]ITest itest);
214
	public static extern int mono_test_marshal_ccw_itest ([MarshalAs (UnmanagedType.Interface)]ITest itest);
210
215
211
	[DllImport ("libtest")]
216
	[DllImport (libName)]
212
	public static extern int mono_test_marshal_ccw_itest ([MarshalAs (UnmanagedType.Interface)]ITestPresSig itest);
217
	public static extern int mono_test_marshal_ccw_itest ([MarshalAs (UnmanagedType.Interface)]ITestPresSig itest);
213
218
214
	public static int Main() {
219
	public static int Main() {
Lines 408-413 Link Here
408
				return 173;
413
				return 173;
409
414
410
			#endregion // Runtime Callable Wrapper Tests
415
			#endregion // Runtime Callable Wrapper Tests
416
		}
411
417
412
			#region COM Callable Wrapper Tests
418
			#region COM Callable Wrapper Tests
413
419
Lines 423-429 Link Here
423
			mono_test_marshal_ccw_itest (test_pres_sig);
429
			mono_test_marshal_ccw_itest (test_pres_sig);
424
430
425
			#endregion // COM Callable Wrapper Tests
431
			#endregion // COM Callable Wrapper Tests
426
		}
427
432
428
        return 0;
433
        return 0;
429
	}
434
	}
Lines 463-468 Link Here
463
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
468
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
464
		void DoubleIn (double val);
469
		void DoubleIn (double val);
465
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
470
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
471
		void ArrayIn (int size, [MarshalAs (UnmanagedType.LPArray, SizeParamIndex=0)] int[] array);
472
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
466
		void ITestIn ([MarshalAs (UnmanagedType.Interface)]ITest val);
473
		void ITestIn ([MarshalAs (UnmanagedType.Interface)]ITest val);
467
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
474
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
468
		void ITestOut ([MarshalAs (UnmanagedType.Interface)]out ITest val);
475
		void ITestOut ([MarshalAs (UnmanagedType.Interface)]out ITest val);
Lines 513-518 Link Here
513
		int DoubleIn (double val);
520
		int DoubleIn (double val);
514
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
521
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
515
		[PreserveSig ()]
522
		[PreserveSig ()]
523
		int ArrayIn (int size, [MarshalAs (UnmanagedType.LPArray, SizeParamIndex=0)] int[] array);
524
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
525
		[PreserveSig ()]
516
		int ITestIn ([MarshalAs (UnmanagedType.Interface)]ITestPresSig val);
526
		int ITestIn ([MarshalAs (UnmanagedType.Interface)]ITestPresSig val);
517
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
527
		[MethodImplAttribute (MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
518
		[PreserveSig ()]
528
		[PreserveSig ()]
Lines 599-604 Link Here
599
			return 0;
609
			return 0;
600
		}
610
		}
601
611
612
		public int ArrayIn (int size, int[] array)
613
		{
614
			if (size != 2 || size != array.Length || array[0] != 100 || array[1] != 200)
615
				return 15;
616
			return 0;
617
		}
618
602
		public int ITestIn ([MarshalAs (UnmanagedType.Interface)]ITestPresSig val)
619
		public int ITestIn ([MarshalAs (UnmanagedType.Interface)]ITestPresSig val)
603
		{
620
		{
604
			if (val == null)
621
			if (val == null)
Lines 695-700 Link Here
695
			val = new ManagedTest ();
712
			val = new ManagedTest ();
696
		}
713
		}
697
714
715
		public void ArrayIn (int size, int[] array)
716
		{
717
			if (size != 2 || size != array.Length || array[0] != 100 || array[1] != 200)
718
				status = 15;
719
		}
720
698
		public ITest Test
721
		public ITest Test
699
		{
722
		{
700
			get
723
			get
(-)mono.orig/mono/tests/libtest.c (-2 / +33 lines)
Lines 10-15 Link Here
10
#ifdef WIN32
10
#ifdef WIN32
11
#include <windows.h>
11
#include <windows.h>
12
#include "initguid.h"
12
#include "initguid.h"
13
#else
14
#include <stdint.h>
13
#endif
15
#endif
14
16
15
#ifdef WIN32
17
#ifdef WIN32
Lines 2718-2723 Link Here
2718
		return 0;
2720
		return 0;
2719
	return 1;
2721
	return 1;
2720
}
2722
}
2723
#endif //NOT YET
2724
2725
#ifndef WIN32
2726
typedef int64_t LONGLONG;
2727
typedef uint64_t ULONGLONG;
2728
typedef struct
2729
{
2730
	uint32_t 			Data1; // 32 bit
2731
	uint16_t 			Data2; // 16 bit
2732
	uint16_t 			Data3; // 16 bit
2733
	unsigned char   	Data4[8];
2734
} GUID;
2735
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
2736
        const GUID name \
2737
                = { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }
2738
#define S_OK			0L
2739
#define E_NOINTERFACE   0x80004002L
2740
#endif // !WIN32
2721
2741
2722
typedef struct MonoComObject MonoComObject;
2742
typedef struct MonoComObject MonoComObject;
2723
2743
Lines 2737-2742 Link Here
2737
	int (STDCALL *ULongIn)(MonoComObject* pUnk, ULONGLONG a);
2757
	int (STDCALL *ULongIn)(MonoComObject* pUnk, ULONGLONG a);
2738
	int (STDCALL *FloatIn)(MonoComObject* pUnk, float a);
2758
	int (STDCALL *FloatIn)(MonoComObject* pUnk, float a);
2739
	int (STDCALL *DoubleIn)(MonoComObject* pUnk, double a);
2759
	int (STDCALL *DoubleIn)(MonoComObject* pUnk, double a);
2760
	int (STDCALL *ArrayIn)(MonoComObject* pUnk, int size, int* array);
2740
	int (STDCALL *ITestIn)(MonoComObject* pUnk, MonoComObject* pUnk2);
2761
	int (STDCALL *ITestIn)(MonoComObject* pUnk, MonoComObject* pUnk2);
2741
	int (STDCALL *ITestOut)(MonoComObject* pUnk, MonoComObject* *ppUnk);
2762
	int (STDCALL *ITestOut)(MonoComObject* pUnk, MonoComObject* *ppUnk);
2742
} MonoIUnknown;
2763
} MonoIUnknown;
Lines 2842-2847 Link Here
2842
	return S_OK;
2863
	return S_OK;
2843
}
2864
}
2844
2865
2866
LIBTEST_API int STDCALL
2867
ArrayIn(MonoComObject* pUnk, int size, int* array)
2868
{
2869
	return S_OK;
2870
}
2871
2845
LIBTEST_API int STDCALL 
2872
LIBTEST_API int STDCALL 
2846
ITestIn(MonoComObject* pUnk, MonoComObject *pUnk2)
2873
ITestIn(MonoComObject* pUnk, MonoComObject *pUnk2)
2847
{
2874
{
Lines 2879-2884 Link Here
2879
	(*pOut)->vtbl->ULongIn = ULongIn;
2906
	(*pOut)->vtbl->ULongIn = ULongIn;
2880
	(*pOut)->vtbl->FloatIn = FloatIn;
2907
	(*pOut)->vtbl->FloatIn = FloatIn;
2881
	(*pOut)->vtbl->DoubleIn = DoubleIn;
2908
	(*pOut)->vtbl->DoubleIn = DoubleIn;
2909
	(*pOut)->vtbl->ArrayIn = ArrayIn;
2882
	(*pOut)->vtbl->ITestIn = ITestIn;
2910
	(*pOut)->vtbl->ITestIn = ITestIn;
2883
	(*pOut)->vtbl->ITestOut = ITestOut;
2911
	(*pOut)->vtbl->ITestOut = ITestOut;
2884
	(*pOut)->vtbl->get_ITest = get_ITest;
2912
	(*pOut)->vtbl->get_ITest = get_ITest;
Lines 2925-2930 Link Here
2925
mono_test_marshal_ccw_itest (MonoComObject *pUnk)
2953
mono_test_marshal_ccw_itest (MonoComObject *pUnk)
2926
{
2954
{
2927
	int hr = 0;
2955
	int hr = 0;
2956
	int array[2] = {100, 200};
2928
	MonoComObject* pTest;
2957
	MonoComObject* pTest;
2929
2958
2930
	if (!pUnk)
2959
	if (!pUnk)
Lines 2960-2978 Link Here
2960
	hr = pUnk->vtbl->DoubleIn (pUnk, 3.14);
2989
	hr = pUnk->vtbl->DoubleIn (pUnk, 3.14);
2961
	if (hr != 0)
2990
	if (hr != 0)
2962
		return 11;
2991
		return 11;
2992
2963
	hr = pUnk->vtbl->ITestIn (pUnk, pUnk);
2993
	hr = pUnk->vtbl->ITestIn (pUnk, pUnk);
2964
	if (hr != 0)
2994
	if (hr != 0)
2965
		return 12;
2995
		return 12;
2966
	hr = pUnk->vtbl->ITestOut (pUnk, &pTest);
2996
	hr = pUnk->vtbl->ITestOut (pUnk, &pTest);
2967
	if (hr != 0)
2997
	if (hr != 0)
2968
		return 13;
2998
		return 13;
2999
	hr = pUnk->vtbl->ArrayIn (pUnk, 2, array);
3000
	if (hr != 0)
3001
		return 14;
2969
3002
2970
	return 0;
3003
	return 0;
2971
}
3004
}
2972
3005
2973
3006
2974
#endif //NOT_YET
2975
2976
3007
2977
/*
3008
/*
2978
 * mono_method_get_unmanaged_thunk tests
3009
 * mono_method_get_unmanaged_thunk tests

Return to bug 465825