コード例 #1
0
ファイル: OleAut32Tests.cs プロジェクト: zhuxb711/Vanara
 private static void SafeArrayMethodTest <T>(SafeSAFEARRAY psa, int count)
 {
     Assert.That(psa, Is.Not.EqualTo(IntPtr.Zero));
     Assert.That(SafeArrayGetDim(psa), Is.EqualTo(1));
     Assert.That(SafeArrayGetElemsize(psa), Is.EqualTo(Marshal.SizeOf(typeof(T))));
     Assert.That(SafeArrayGetLBound(psa, 1, out var b).Succeeded);
     Assert.That(b, Is.EqualTo(0));
     Assert.That(SafeArrayGetUBound(psa, 1, out var u).Succeeded);
     Assert.That(u, Is.EqualTo(count - 1));
 }
コード例 #2
0
ファイル: PROPVARIANTTests.cs プロジェクト: tajbender/Vanara
        public void PROPVARIANTArrayTest()
        {
            // Setup SAFEARRAY
            var array = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            using var sa = SafeSAFEARRAY.CreateFromArray(array, VARTYPE.VT_I4);

            // Add it to a PV
            using var pv = new PROPVARIANT(sa, VarEnum.VT_ARRAY | VarEnum.VT_I4);
            Assert.That(PropVariantGetElementCount(pv), Is.EqualTo(array.Length));
            Assert.That(PropVariantGetInt32Elem(pv, 5, out var iVal), ResultIs.Successful);
            Assert.That(iVal, Is.EqualTo(array[5]));

            // Check GetValue func
            Assert.That(pv.parray, Is.EquivalentTo(array));
        }
コード例 #3
0
ファイル: OleAut32Tests.cs プロジェクト: tajbender/Vanara
        public void SafeSAFEARRAYConvert1DimTest()
        {
            // Setup SAFEARRAY
            var array = new int[] { 1, 2, 3, 4 };

            using var sa = SafeSAFEARRAY.CreateFromArray(array, VARTYPE.VT_I4);
            Assert.That(sa.Length, Is.EqualTo(array.Length));
            Assert.That(sa.Rank, Is.EqualTo(array.Rank));

            var toarray = sa.ToArray();

            Assert.That(toarray, Is.EquivalentTo(array));

            var i = sa.GetValue <int>(3);

            Assert.That(i, Is.EqualTo(array[3]));
            sa.SetValue(i + 10, 3);
            Assert.That(sa.GetValue <int>(3), Is.EqualTo(i + 10));
            Assert.That(sa.GetValue(3), Is.EqualTo(i + 10));
        }
コード例 #4
0
ファイル: OleAut32Tests.cs プロジェクト: tajbender/Vanara
        public void SafeSAFEARRAYConvertMultDimTest()
        {
            // Setup SAFEARRAY
            var array = new int[2, 3, 4] {
                { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }, { { 13, 14, 15, 16 }, { 17, 18, 19, 20 }, { 21, 22, 23, 24 } }
            };

            using var sa = SafeSAFEARRAY.CreateFromArray(array, VARTYPE.VT_I4);
            Assert.That(sa.Length, Is.EqualTo(array.Length));
            Assert.That(sa.Rank, Is.EqualTo(array.Rank));

            var toarray = sa.ToArray();

            Assert.That(toarray, Is.EquivalentTo(array));

            var i = sa.GetValue <int>(1, 2, 3);

            Assert.That(i, Is.EqualTo(array[1, 2, 3]));
            sa.SetValue(i + 10, 1, 2, 3);
            Assert.That(sa.GetValue <int>(1, 2, 3), Is.EqualTo(i + 10));
            Assert.That(sa.GetValue(1, 2, 3), Is.EqualTo(i + 10));
        }