ClientSideQueueItem.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / AccessibleTech / longhorn / Automation / UIAutomationClient / MS / Internal / Automation / ClientSideQueueItem.cs / 1 / ClientSideQueueItem.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// 
// Description: Class to create a queue on its own thread. 
//
// History: 
//  06/17/2003 : [....] Ported to WCP
//
//---------------------------------------------------------------------------
 
using System.Windows.Automation;
using System.Windows.Automation.Provider; 
using System; 
using System.Collections;
using System.ComponentModel; 
using MS.Internal.Automation;
using MS.Win32;

namespace MS.Internal.Automation 
{
    // Worker class used to queue events that originated on the client side (e.g. 
    // used by focus and top-level window tracking to queue WinEvent information). 
    internal class ClientSideQueueItem : QueueItem
    { 
        //-----------------------------------------------------
        //
        //  Constructors
        // 
        //-----------------------------------------------------
 
        #region Constructors 

        internal ClientSideQueueItem(Delegate clientCallback, AutomationElement srcEl, UiaCoreApi.UiaCacheRequest request, AutomationEventArgs e) 
        {
            _clientCallback = clientCallback;
            _srcEl = srcEl;
            _request = request; 
            _e = e;
        } 
 
        #endregion Constructors
 

        //------------------------------------------------------
        //
        //  Internal Methods 
        //
        //----------------------------------------------------- 
 
        #region Internal Methods
 
        internal override void Process()
        {
            // Grab properties for cache request here...
            AutomationElement src; 
            if (_srcEl == null)
            { 
                src = null; 
            }
            else 
            {
                UiaCoreApi.UiaCacheResponse response = UiaCoreApi.UiaGetUpdatedCache(_srcEl.RawNode, _request, UiaCoreApi.NormalizeState.View, null);
                src = CacheHelper.BuildAutomationElementsFromResponse(_request, response);
            } 

            // 
 
            if (!(src == null && _e.EventId == AutomationElement.AutomationFocusChangedEvent))
                InvokeHandlers.InvokeClientHandler(_clientCallback, src, _e); 
        }

        #endregion Internal Methods
 

        //------------------------------------------------------ 
        // 
        //  Private Fields
        // 
        //------------------------------------------------------

        #region Private Fields
 
        private Delegate _clientCallback;       // a client callback delegate
        private AutomationElement _srcEl;     // the source element 
        private UiaCoreApi.UiaCacheRequest _request; // shopping list for prefetch 
        private AutomationEventArgs _e;       // the event args for the callback
 
        #endregion Private Fields
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK