public static int Main() { bool isWindows = !(((int)Environment.OSVersion.Platform == 4) || ((int)Environment.OSVersion.Platform == 128)); if (isWindows) { string str; if (mono_test_marshal_bstr_in ("mono_test_marshal_bstr_in") != 0) return 1; if (mono_test_marshal_bstr_out (out str) != 0 || str != "mono_test_marshal_bstr_out") return 2; if (mono_test_marshal_bstr_in_null (null) != 0) return 1; if (mono_test_marshal_bstr_out_null (out str) != 0 || str != null) return 2; object obj; if (mono_test_marshal_variant_in_sbyte ((sbyte)100) != 0) return 13; if (mono_test_marshal_variant_in_byte ((byte)100) != 0) return 14; if (mono_test_marshal_variant_in_short ((short)314) != 0) return 15; if (mono_test_marshal_variant_in_ushort ((ushort)314) != 0) return 16; if (mono_test_marshal_variant_in_int ((int)314) != 0) return 17; if (mono_test_marshal_variant_in_uint ((uint)314) != 0) return 18; if (mono_test_marshal_variant_in_long ((long)314) != 0) return 19; if (mono_test_marshal_variant_in_ulong ((ulong)314) != 0) return 20; if (mono_test_marshal_variant_in_float ((float)3.14) != 0) return 21; if (mono_test_marshal_variant_in_double ((double)3.14) != 0) return 22; if (mono_test_marshal_variant_in_bstr ("PI") != 0) return 23; if (mono_test_marshal_variant_out_sbyte (out obj) != 0 || (sbyte)obj != 100) return 24; if (mono_test_marshal_variant_out_byte (out obj) != 0 || (byte)obj != 100) return 25; if (mono_test_marshal_variant_out_short (out obj) != 0 || (short)obj != 314) return 26; if (mono_test_marshal_variant_out_ushort (out obj) != 0 || (ushort)obj != 314) return 27; if (mono_test_marshal_variant_out_int (out obj) != 0 || (int)obj != 314) return 28; if (mono_test_marshal_variant_out_uint (out obj) != 0 || (uint)obj != 314) return 29; if (mono_test_marshal_variant_out_long (out obj) != 0 || (long)obj != 314) return 30; if (mono_test_marshal_variant_out_ulong (out obj) != 0 || (ulong)obj != 314) return 31; if (mono_test_marshal_variant_out_float (out obj) != 0 || ((float)obj - 3.14) / 3.14 > .001) return 32; if (mono_test_marshal_variant_out_double (out obj) != 0 || ((double)obj - 3.14) / 3.14 > .001) return 33; if (mono_test_marshal_variant_out_bstr (out obj) != 0 || (string)obj != "PI") return 34; VarFunc func = new VarFunc (mono_test_marshal_variant_in_callback); if (mono_test_marshal_variant_in_sbyte_unmanaged (func) != 0) return 35; if (mono_test_marshal_variant_in_byte_unmanaged (func) != 0) return 36; if (mono_test_marshal_variant_in_short_unmanaged (func) != 0) return 37; if (mono_test_marshal_variant_in_ushort_unmanaged (func) != 0) return 38; if (mono_test_marshal_variant_in_int_unmanaged (func) != 0) return 39; if (mono_test_marshal_variant_in_uint_unmanaged (func) != 0) return 40; if (mono_test_marshal_variant_in_long_unmanaged (func) != 0) return 41; if (mono_test_marshal_variant_in_ulong_unmanaged (func) != 0) return 42; if (mono_test_marshal_variant_in_float_unmanaged (func) != 0) return 43; if (mono_test_marshal_variant_in_double_unmanaged (func) != 0) return 44; if (mono_test_marshal_variant_in_bstr_unmanaged (func) != 0) return 45; if (mono_test_marshal_variant_in_bool_true_unmanaged (func) != 0) return 46; VarRefFunc reffunc = new VarRefFunc (mono_test_marshal_variant_out_callback); if (mono_test_marshal_variant_out_sbyte_unmanaged (reffunc) != 0) return 50; if (mono_test_marshal_variant_out_byte_unmanaged (reffunc) != 0) return 51; if (mono_test_marshal_variant_out_short_unmanaged (reffunc) != 0) return 52; if (mono_test_marshal_variant_out_ushort_unmanaged (reffunc) != 0) return 53; if (mono_test_marshal_variant_out_int_unmanaged (reffunc) != 0) return 54; if (mono_test_marshal_variant_out_uint_unmanaged (reffunc) != 0) return 55; if (mono_test_marshal_variant_out_long_unmanaged (reffunc) != 0) return 56; if (mono_test_marshal_variant_out_ulong_unmanaged (reffunc) != 0) return 57; if (mono_test_marshal_variant_out_float_unmanaged (reffunc) != 0) return 58; if (mono_test_marshal_variant_out_double_unmanaged (reffunc) != 0) return 59; if (mono_test_marshal_variant_out_bstr_unmanaged (reffunc) != 0) return 60; if (mono_test_marshal_variant_out_bool_true_unmanaged (reffunc) != 0) return 61; IntPtr pUnk; if (mono_test_marshal_com_object_create (out pUnk) != 0) return 145; if (mono_test_marshal_com_object_ref_count (pUnk) != 1) return 146; if (Marshal.AddRef (pUnk) != 2) return 147; if (mono_test_marshal_com_object_ref_count (pUnk) != 2) return 148; if (Marshal.Release (pUnk) != 1) return 149; if (mono_test_marshal_com_object_ref_count (pUnk) != 1) return 150; object com_obj = Marshal.GetObjectForIUnknown (pUnk); if (com_obj == null) return 151; ITest itest = com_obj as ITest; if (itest == null) return 152; IntPtr pUnk2; if (mono_test_marshal_com_object_same (out pUnk2) != 0) return 153; object com_obj2 = Marshal.GetObjectForIUnknown (pUnk2); if (com_obj != com_obj2) return 154; if (!com_obj.Equals (com_obj2)) return 155; IntPtr pUnk3; if (mono_test_marshal_com_object_create (out pUnk3) != 0) return 156; object com_obj3 = Marshal.GetObjectForIUnknown (pUnk3); if (com_obj == com_obj3) return 157; if (com_obj.Equals (com_obj3)) return 158; if (Marshal.ReleaseComObject (com_obj2) != 1) return 159; if (Marshal.ReleaseComObject (com_obj3) != 0) return 160; IntPtr iunknown = Marshal.GetIUnknownForObject (com_obj); if (iunknown == IntPtr.Zero) return 170; if (pUnk != iunknown) return 171; if (TestITest (itest) != 0) return 172; if (TestITestPresSig (itest as ITestPresSig) != 0) return 173; ManagedTest test = new ManagedTest (); mono_test_marshal_ccw_itest (test); if (test.Status != 0) return 200; ManagedTestPresSig test_pres_sig = new ManagedTestPresSig (); mono_test_marshal_ccw_itest (test_pres_sig); } return 0; }
public void ITestOut(out ITest val) { val = new ManagedTest (); }