+2006-10-20 Jonathan Chambers <joncham@gmail.com>
+
+ * cominterop.cs: Added more tests for Variant.
+ * libtest.c: Added more tests for Variant.
+
2006-10-02 Zoltan Varga <vargaz@gmail.com>
* static-constructor.cs: Add a new test.
public static extern int mono_test_marshal_variant_in_double([MarshalAs(UnmanagedType.Struct)]object obj);
[DllImport("libtest")]
- public static extern int mono_test_marshal_variant_in_bstr([MarshalAs(UnmanagedType.Struct)]object obj);
+ public static extern int mono_test_marshal_variant_in_bstr ([MarshalAs (UnmanagedType.Struct)]object obj);
+
+ [DllImport ("libtest")]
+ public static extern int mono_test_marshal_variant_in_bool_true ([MarshalAs (UnmanagedType.Struct)]object obj);
+
+ [DllImport ("libtest")]
+ public static extern int mono_test_marshal_variant_in_bool_false ([MarshalAs (UnmanagedType.Struct)]object obj);
[DllImport("libtest")]
public static extern int mono_test_marshal_variant_out_sbyte([MarshalAs(UnmanagedType.Struct)]out object obj);
public static extern int mono_test_marshal_variant_out_double([MarshalAs(UnmanagedType.Struct)]out object obj);
[DllImport("libtest")]
- public static extern int mono_test_marshal_variant_out_bstr([MarshalAs(UnmanagedType.Struct)]out object obj);
+ public static extern int mono_test_marshal_variant_out_bstr ([MarshalAs (UnmanagedType.Struct)]out object obj);
+
+ [DllImport("libtest")]
+ public static extern int mono_test_marshal_variant_out_bool_true ([MarshalAs (UnmanagedType.Struct)]out object obj);
+
+ [DllImport ("libtest")]
+ public static extern int mono_test_marshal_variant_out_bool_false ([MarshalAs (UnmanagedType.Struct)]out object obj);
[DllImport ("libtest")]
public static extern int mono_test_marshal_com_object_create (out IntPtr pUnk);
[DllImport ("libtest")]
public static extern int mono_test_marshal_com_object_destroy (IntPtr pUnk);
- [DllImport ("libtest")]
- public static extern int mono_test_marshal_com_object_ref_count (IntPtr pUnk);
+ [DllImport ("libtest")]
+ public static extern int mono_test_marshal_com_object_ref_count (IntPtr pUnk);
public static int Main() {
return 1;
}
+STDCALL int
+mono_test_marshal_variant_in_bool_true (VARIANT variant)
+{
+ if (variant.vt == VT_BOOL && variant.ullVal == VARIANT_TRUE)
+ return 0;
+ return 1;
+}
+
+STDCALL int
+mono_test_marshal_variant_in_bool_false (VARIANT variant)
+{
+ if (variant.vt == VT_BOOL && variant.ullVal == VARIANT_FALSE)
+ return 0;
+ return 1;
+}
+
STDCALL int
mono_test_marshal_variant_out_sbyte(VARIANT* variant)
{
return 0;
}
+STDCALL int
+mono_test_marshal_variant_out_bool_true (VARIANT* variant)
+{
+ variant->vt = VT_BOOL;
+ variant->bstrVal = VARIANT_TRUE;
+
+ return 0;
+}
+
+STDCALL int
+mono_test_marshal_variant_out_bool_false (VARIANT* variant)
+{
+ variant->vt = VT_BOOL;
+ variant->bstrVal = VARIANT_FALSE;
+
+ return 0;
+}
+
#ifdef _MSC_VER
#define COM_STDCALL __stdcall
#else