private static bool IsValidType(NdrExpressionType type) { switch (type) { case NdrExpressionType.FC_EXPR_OPER: case NdrExpressionType.FC_EXPR_CONST32: case NdrExpressionType.FC_EXPR_CONST64: case NdrExpressionType.FC_EXPR_VAR: return(true); } return(false); }
internal NdrConstantExpression(NdrExpressionType type, BinaryReader reader) : base(type) { Format = (NdrFormatCharacter)reader.ReadByte(); Offset = reader.ReadInt16(); if (type == NdrExpressionType.FC_EXPR_CONST32) { Value = reader.ReadInt32(); } else { Value = reader.ReadInt64(); } IsValid = true; }
internal static NdrExpression ReadExpression(BinaryReader reader) { NdrExpressionType type = (NdrExpressionType)reader.ReadByte(); switch (type) { case NdrExpressionType.FC_EXPR_OPER: return(new NdrOperatorExpression(reader)); case NdrExpressionType.FC_EXPR_CONST32: case NdrExpressionType.FC_EXPR_CONST64: return(new NdrConstantExpression(type, reader)); case NdrExpressionType.FC_EXPR_VAR: return(new NdrVariableExpression(reader)); default: break; } return(new NdrExpression()); }
internal NdrExpression(NdrExpressionType type) { Type = type; }