Exemple #1
0
    static bool ReverseCall_TakeStru_Exp_DecAsCYAsFldByOutRef([Out] out Stru_Exp_DecAsCYAsFld s)
    {
        s.dec = CY_MAX_VALUE;
        s.wc  = 'C';

        return(true);
    }
Exemple #2
0
 static extern bool TakeStru_Exp_DecAsCYAsFldByInOutRef([Out] out Stru_Exp_DecAsCYAsFld s);
Exemple #3
0
    static bool MarshalAsCurrencyScenario()
    {
        Console.WriteLine("MarshalAsCurrencyScenario started.");
        //CY
        decimal cy = CY_MAX_VALUE;

        if (!TakeCYAsInOutParamAsLPStructByRef(ref cy))
        {
            Console.WriteLine("Test Failed: TakeCYAsInOutParamAsLPStructByRef : Returned false");
            return(false);
        }
        if (CY_MIN_VALUE != cy)
        {
            Console.WriteLine($"Test Failed: Expected 'CY_MIN_VALUE'. Got {cy}.");
            return(false);
        }

        cy = decimal.MaxValue;
        if (!TakeCYAsOutParamAsLPStructByRef(out cy))
        {
            Console.WriteLine("Test Failed: TakeCYAsOutParamAsLPStructByRef : Returned false");
            return(false);
        }
        if (CY_MIN_VALUE != cy)
        {
            Console.WriteLine($"Test Failed: Expected 'CY_MIN_VALUE'. Got {cy}.");
            return(false);
        }

        bool exceptionThrown = false;

        try
        {
            RetCY();
        }
        catch (MarshalDirectiveException)
        {
            exceptionThrown = true;
        }
        if (!exceptionThrown)
        {
            Console.WriteLine("Expected MarshalDirectiveException from RetCY() not thrown");
            return(false);
        }

        cy = RetCYStruct().dec;
        if (cy != CY_MIN_VALUE)
        {
            Console.WriteLine($"Test Failed: RetCYStruct. Expected 'CY_MIN_VALUE'. Got '{cy}'.");
            return(false);
        }

        Stru_Exp_DecAsCYAsFld s = new Stru_Exp_DecAsCYAsFld();

        s.cy = CY_MAX_VALUE;
        s.wc = 'I';
        if (!TakeStru_Exp_DecAsCYAsFldByInOutRef(out s))
        {
            Console.WriteLine("Test Failed: TakeStru_Exp_DecAsCYAsFldByInOutRef : Returned false");
            return(false);
        }
        if (!TakeStru_Exp_DecAsCYAsFldByInOutRef(out s))
        {
            if (CY_MAX_VALUE != s.cy)
            {
                Console.WriteLine($"Test Failed: Expected 'CY_MAX_VALUE'. Got {s.cy}.");
                return(false);
            }
        }
        if ('C' != s.wc)
        {
            Console.WriteLine($"Test Failed: Expected 'C'. Got {s.wc}.");
            return(false);
        }

        Console.WriteLine("MarshalAsCurrencyScenario end.");
        return(true);
    }