Beispiel #1
0
    public static void Out()
    {
        IntPtr handleValue = MyCriticalHandle.GetUniqueHandle();

        MyCriticalHandle[] myCriticalHandleArray;
        Assert.Throws <MarshalDirectiveException>(() => Native.Out(handleValue, out myCriticalHandleArray));
    }
Beispiel #2
0
    public static void Out()
    {
        IntPtr handleValue = MyCriticalHandle.GetUniqueHandle();

        Native.MyCriticalHandleStruct handleStruct;
        Assert.Throws <NotSupportedException>(() => Native.Out(handleValue, out handleStruct));
    }
Beispiel #3
0
    public static void In()
    {
        IntPtr handleValue = MyCriticalHandle.GetUniqueHandle();

        InWorker(handleValue);
        GC.Collect();
        GC.WaitForPendingFinalizers();
        Assert.IsTrue(MyCriticalHandle.IsHandleClosed(handleValue), "Handle was not closed");
    }
Beispiel #4
0
    public static void Ref()
    {
        IntPtr handleValue = MyCriticalHandle.GetUniqueHandle();

        RefWorker(handleValue);
        GC.Collect();
        GC.WaitForPendingFinalizers();
        Assert.True(MyCriticalHandle.IsHandleClosed(handleValue));
    }
Beispiel #5
0
    public static void In()
    {
        IntPtr handleValue = MyCriticalHandle.GetUniqueHandle();

        MyCriticalHandle[] myCriticalHandleArray = new MyCriticalHandle[] { new MyCriticalHandle()
                                                                            {
                                                                                Handle = handleValue
                                                                            } };
        Assert.Throws <MarshalDirectiveException>(() => Native.In(myCriticalHandleArray));
    }
Beispiel #6
0
    public static void RefModify()
    {
        IntPtr handleValue1 = MyCriticalHandle.GetUniqueHandle();
        IntPtr handleValue2 = MyCriticalHandle.GetUniqueHandle();

        MyCriticalHandle[] myCriticalHandleArray = new MyCriticalHandle[] { new MyCriticalHandle()
                                                                            {
                                                                                Handle = handleValue1
                                                                            } };
        Assert.Throws <MarshalDirectiveException>(() => Native.RefModify(handleValue2, ref myCriticalHandleArray));
    }
Beispiel #7
0
    public static void RefModify()
    {
        IntPtr handleValue1 = MyCriticalHandle.GetUniqueHandle();
        IntPtr handleValue2 = MyCriticalHandle.GetUniqueHandle();

        RefModifyWorker(handleValue1, handleValue2);
        GC.Collect();
        GC.WaitForPendingFinalizers();
        Assert.IsTrue(MyCriticalHandle.IsHandleClosed(handleValue1), "Handle 1 was not closed");
        Assert.IsTrue(MyCriticalHandle.IsHandleClosed(handleValue2), "Handle 2 was not closed");
    }
Beispiel #8
0
    public static void RefModify()
    {
        IntPtr handleValue1 = MyCriticalHandle.GetUniqueHandle();
        IntPtr handleValue2 = MyCriticalHandle.GetUniqueHandle();

        Native.MyCriticalHandleStruct handleStruct = new Native.MyCriticalHandleStruct()
        {
            Handle = new MyCriticalHandle()
            {
                Handle = handleValue1
            }
        };

        Assert.Throws <NotSupportedException>(() => Native.RefModify(handleValue2, ref handleStruct, null));
    }
Beispiel #9
0
    public static void Ret()
    {
        IntPtr handleValue = MyCriticalHandle.GetUniqueHandle();

        Assert.Throws <MarshalDirectiveException>(() => Native.Ret(handleValue));
    }
Beispiel #10
0
    public static void Ret()
    {
        IntPtr handleValue = MyCriticalHandle.GetUniqueHandle();

        Assert.Throws <NotSupportedException>(() => Native.Ret(handleValue));
    }