internal AutoResponseFlagProperty(string displayName, MessageFlags flag, AutoResponseSuppress suppressFlag) : base(displayName, typeof(bool), PropertyFlags.ReadOnly, PropertyDefinitionConstraint.None, new PropertyDependency[]
 {
     new PropertyDependency(InternalSchema.Flags, PropertyDependencyType.NeedForRead),
     new PropertyDependency(InternalSchema.AutoResponseSuppressInternal, PropertyDependencyType.NeedForRead)
 })
 {
     this.suppressMask = suppressFlag;
     this.nativeFlag   = flag;
 }
        protected override void InternalSetValue(PropertyBag.BasicPropertyStore propertyBag, object value)
        {
            AutoResponseSuppress autoResponseSuppress = (AutoResponseSuppress)value;

            foreach (KeyValuePair <NativeStorePropertyDefinition, AutoResponseSuppress> keyValuePair in AutoResponseSuppressProperty.SuppressionMapping)
            {
                if ((autoResponseSuppress & keyValuePair.Value) == keyValuePair.Value)
                {
                    propertyBag.SetValueWithFixup(keyValuePair.Key, false);
                }
            }
            propertyBag.SetValueWithFixup(InternalSchema.AutoResponseSuppressInternal, (int)value);
        }