示例#1
0
        // AddRootListener - Add a listener for an event whose reference is always the
        // root and scope is all elements
        private static void AddRootListener(Tracker idx, Delegate eventCallback, EventListener l)
        {
            lock ( _classLock )
            {
                // Add this listener to client-side store of listeners and give the server
                // a chance to enable accessibility for this event
                AddListener(AutomationElement.RootElement, eventCallback, l);

                // Track WinEvents
                WinEventWrap eventWrapper = _winEventTrackers[(int)idx];

                if (eventWrapper == null)
                {
                    // First time create a WinEvent tracker and start listening
                    AddWinEventListener(idx, GetNewRootTracker(idx));
                }
                else
                {
                    // Subsequent times just add the callback to the existing WinEvent
                    eventWrapper.AddCallback(eventCallback);
                }
            }
        }