File: MS\Internal\Automation\AutomationPropertyInfo.cs
Project: wpf\src\UIAutomation\UIAutomationClient\UIAutomationClient.csproj (UIAutomationClient)
//---------------------------------------------------------------------------
//
// <copyright file="AutomationPropertyInfo.cs" company="Microsoft">
//    Copyright (C) Microsoft Corporation.  All rights reserved.
// </copyright>
// 
//
// Description: class containing information about an automation property
//
// History:  
//  06/04/2003 : BrendanM Ported to WCP
//
//---------------------------------------------------------------------------
 
using System;
using System.Windows.Automation;
 
namespace MS.Internal.Automation
{
 
    // This is used to cast the VARIANT-based objects that we get back from the unmanaged
    // API to our own types - eg enums need to be cast from int VT_I4s to real enums.
    internal delegate object AutomationPropertyConverter( object valueAsObject );
 
    // class containing information about an automation property
    internal class AutomationPropertyInfo
    {
        //------------------------------------------------------
        //
        //  Constructors
        //
        //------------------------------------------------------
 
        #region Constructors
 
        internal AutomationPropertyInfo( 
            AutomationPropertyConverter converter,
            AutomationProperty id,
            Type type,
            object defaultValue
            )
        {
            _id = id;
            _type = type;
            _defaultValue = defaultValue;
            _converter = converter;
        }
        
        #endregion Constructors
 
        //------------------------------------------------------
        //
        //  Internal Properties
        //
        //------------------------------------------------------
 
        #region Internal Properties
 
        internal AutomationProperty          ID                { get { return _id; } }
        internal object                      DefaultValue      { get { return _defaultValue; } }
        internal AutomationPropertyConverter ObjectConverter   { get { return _converter; } }
        internal Type                        Type              { get { return _type; } }
 
        #endregion Internal Properties
 
 
        //------------------------------------------------------
        //
        //  Private Fields
        //
        //------------------------------------------------------
 
        #region Private Fields
 
        private AutomationProperty _id;
        private Type _type;
        private object _defaultValue;
        private AutomationPropertyConverter _converter;
 
        #endregion Private Fields
    }
}