MegaBites-AI/Windows-powershell
0372
1// Licensed to the .NET Foundation under one or more agreements.2// The .NET Foundation licenses this file to you under the MIT license.3 4using System;5using System.Diagnostics;6using System.Linq.Expressions;7 8namespace System.Management.Automation.ComInterop9{10 internal sealed class BoolArgBuilder : SimpleArgBuilder11 {12 internal BoolArgBuilder(Type parameterType)13 : base(parameterType)14 {15 Debug.Assert(parameterType == typeof(bool));16 }17 18 internal override Expression MarshalToRef(Expression parameter)19 {20 // parameter ? -1 : 021 return Expression.Condition(22 Marshal(parameter),23 Expression.Constant((short)(-1)),24 Expression.Constant((short)0)25 );26 }27 28 internal override Expression UnmarshalFromRef(Expression value)29 {30 //parameter = temp != 031 return base.UnmarshalFromRef(32 Expression.NotEqual(33 value,34 Expression.Constant((short)0)35 )36 );37 }38 }39}40 