public override void SetValue(object obj, object value)
        {
            if (this.m_typeCode != 0)
            {
                IPropertyStore propertyStore = ((ReportObject)obj).PropertyStore;
                if (this.m_definition != null)
                {
                    this.m_definition.Validate(obj, value);
                }
                switch (this.m_typeCode)
                {
                default:
                    propertyStore.SetObject(this.m_index, value);
                    break;

                case PropertyTypeCode.ContainedObject:
                    propertyStore.SetObject(this.m_index, (IContainedObject)value);
                    break;

                case PropertyTypeCode.Boolean:
                    propertyStore.SetBoolean(this.m_index, (bool)value);
                    break;

                case PropertyTypeCode.Integer:
                case PropertyTypeCode.Enum:
                    propertyStore.SetInteger(this.m_index, (int)value);
                    break;

                case PropertyTypeCode.Size:
                    propertyStore.SetSize(this.m_index, (ReportSize)value);
                    break;
                }
            }
            else
            {
                this.m_property.SetValue(obj, value, null);
            }
        }