public void Ctor_Default()
        {
            var            attribute = new IUnknownConstantAttribute();
            UnknownWrapper wrapper   = Assert.IsType <UnknownWrapper>(attribute.Value);

            Assert.Null(wrapper.WrappedObject);
        }
        public void Ctor_Default()
        {
            var attribute = new IUnknownConstantAttribute();

#pragma warning disable 0618 // UnknownWrapper is marked as Obsolete.
            UnknownWrapper wrapper = Assert.IsType <UnknownWrapper>(attribute.Value);
#pragma warning restore 0618
            Assert.Null(wrapper.WrappedObject);
        }
Exemple #3
0
        public void Test_ObjectConversion_Object()
        {
            var obj    = new object();
            var unk    = new UnknownWrapper(obj);
            var result = VariantConverter.ChangeType(unk, typeof(DispatchWrapper));

            Assert.AreSame(obj, result);

            var result2 = VariantConverter.ChangeType(result, typeof(UnknownWrapper));

            Assert.AreSame(unk.WrappedObject, result2);
        }
Exemple #4
0
        private void UnknownWrapper(dynamic toWrap)
        {
            var val = new UnknownWrapper(toWrap);

            // Get and set property
            obj.Variant_Property = val;
            Assert.AreEqual(val.WrappedObject, obj.Variant_Property);

            // Call method with return value
            dynamic ret = obj.Variant_Ret(val);

            Assert.IsTrue(ret.Boolean_Property);
            Assert.IsTrue(toWrap.Boolean_Property);

            // Call method passing by ref
            obj.Variant_InOut(ref val);
            Assert.IsTrue(toWrap.Boolean_Property);
        }
    private unsafe static void TestByRef()
    {
        object obj;

        obj = (byte)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Byte(ref obj, NumericValue));

        obj = (sbyte)NumericValue;
        Assert.IsTrue(Marshal_ByRef_SByte(ref obj, (sbyte)NumericValue));

        obj = (short)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Int16(ref obj, NumericValue));

        obj = (ushort)NumericValue;
        Assert.IsTrue(Marshal_ByRef_UInt16(ref obj, NumericValue));

        obj = (int)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Int32(ref obj, NumericValue));

        obj = (uint)NumericValue;
        Assert.IsTrue(Marshal_ByRef_UInt32(ref obj, NumericValue));

        obj = (long)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Int64(ref obj, NumericValue));

        obj = (ulong)NumericValue;
        Assert.IsTrue(Marshal_ByRef_UInt64(ref obj, NumericValue));

        obj = (float)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Single(ref obj, NumericValue));

        obj = (double)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Double(ref obj, NumericValue));

        obj = StringValue;
        Assert.IsTrue(Marshal_ByRef_String(ref obj, StringValue));

        obj = new BStrWrapper(null);
        Assert.IsTrue(Marshal_ByRef_String(ref obj, null));

        obj = CharValue;
        Assert.IsTrue(Marshal_ByRef_Char(ref obj, CharValue));

        obj = true;
        Assert.IsTrue(Marshal_ByRef_Boolean(ref obj, true));

        obj = DateValue;
        Assert.IsTrue(Marshal_ByRef_DateTime(ref obj, DateValue));

        obj = DecimalValue;
        Assert.IsTrue(Marshal_ByRef_Decimal(ref obj, DecimalValue));

        obj = new CurrencyWrapper(DecimalValue);
        Assert.IsTrue(Marshal_ByRef_Currency(ref obj, DecimalValue));

        obj = DBNull.Value;
        Assert.IsTrue(Marshal_ByRef_Null(ref obj));

        obj = System.Reflection.Missing.Value;
        Assert.IsTrue(Marshal_ByRef_Missing(ref obj));

        obj = null;
        Assert.IsTrue(Marshal_ByRef_Empty(ref obj));

        obj = new object();
        Assert.IsTrue(Marshal_ByRef_Object(ref obj));

        obj = new UnknownWrapper(new object());
        Assert.IsTrue(Marshal_ByRef_Object_IUnknown(ref obj));

        obj = DecimalValue;
        Assert.IsTrue(Marshal_ChangeVariantType(ref obj, NumericValue));
        Assert.IsTrue(obj is int);
        Assert.AreEqual(NumericValue, (int)obj);
    }
Exemple #6
0
        public void Ctor_Value(object value)
        {
            var wrapper = new UnknownWrapper(value);

            Assert.Equal(value, wrapper.WrappedObject);
        }
Exemple #7
0
    private unsafe static void TestByRef(bool hasComSupport)
    {
        object obj;

        obj = (byte)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Byte(ref obj, NumericValue));

        obj = (sbyte)NumericValue;
        Assert.IsTrue(Marshal_ByRef_SByte(ref obj, (sbyte)NumericValue));

        obj = (short)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Int16(ref obj, NumericValue));

        obj = (ushort)NumericValue;
        Assert.IsTrue(Marshal_ByRef_UInt16(ref obj, NumericValue));

        obj = (int)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Int32(ref obj, NumericValue));

        obj = (uint)NumericValue;
        Assert.IsTrue(Marshal_ByRef_UInt32(ref obj, NumericValue));

        obj = (long)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Int64(ref obj, NumericValue));

        obj = (ulong)NumericValue;
        Assert.IsTrue(Marshal_ByRef_UInt64(ref obj, NumericValue));

        obj = (float)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Single(ref obj, NumericValue));

        obj = (double)NumericValue;
        Assert.IsTrue(Marshal_ByRef_Double(ref obj, NumericValue));

        obj = StringValue;
        Assert.IsTrue(Marshal_ByRef_String(ref obj, StringValue));

        obj = new BStrWrapper(null);
        Assert.IsTrue(Marshal_ByRef_String(ref obj, null));

        obj = CharValue;
        Assert.IsTrue(Marshal_ByRef_Char(ref obj, CharValue));

        obj = true;
        Assert.IsTrue(Marshal_ByRef_Boolean(ref obj, true));

        obj = DateValue;
        Assert.IsTrue(Marshal_ByRef_DateTime(ref obj, DateValue));

        obj = DecimalValue;
        Assert.IsTrue(Marshal_ByRef_Decimal(ref obj, DecimalValue));

        obj = new CurrencyWrapper(DecimalValue);
        Assert.IsTrue(Marshal_ByRef_Currency(ref obj, DecimalValue));

        obj = DBNull.Value;
        Assert.IsTrue(Marshal_ByRef_Null(ref obj));

        obj = System.Reflection.Missing.Value;
        Assert.IsTrue(Marshal_ByRef_Missing(ref obj));

        obj = null;
        Assert.IsTrue(Marshal_ByRef_Empty(ref obj));

        if (hasComSupport)
        {
            obj = new object();
            Assert.IsTrue(Marshal_ByRef_Object(ref obj));

            obj = new UnknownWrapper(new object());
            Assert.IsTrue(Marshal_ByRef_Object_IUnknown(ref obj));

            obj = new GenerateIClassX();
            Assert.IsTrue(Marshal_ByRef_Object(ref obj));

            obj = new UnknownWrapper(new GenerateIClassX());
            Assert.IsTrue(Marshal_ByRef_Object_IUnknown(ref obj));
        }
        else
        {
            Assert.Throws <NotSupportedException>(
                () =>
            {
                obj = new object();
                Marshal_ByRef_Object(ref obj);
            },
                "Built-in COM has been disabled via a feature switch");
            Assert.Throws <NotSupportedException>(
                () =>
            {
                obj = new UnknownWrapper(new object());
                Marshal_ByRef_Object_IUnknown(ref obj);
            },
                "Built-in COM has been disabled via a feature switch");
        }

        obj = DecimalValue;
        Assert.IsTrue(Marshal_ChangeVariantType(ref obj, NumericValue));
        Assert.IsTrue(obj is int);
        Assert.AreEqual(NumericValue, (int)obj);
    }