Exemplo n.º 1
0
        // RemoveWinEventListener - remove an event callback for a global listener
        private static void RemoveWinEventListener(Tracker idx, Delegate eventCallback)
        {
            WinEventWrap eventWrapper = _winEventTrackers[(int)idx];

            if (eventWrapper == null)
            {
                return;
            }

            bool fRemovedLastListener = eventWrapper.RemoveCallback(eventCallback);

            if (fRemovedLastListener)
            {
                _callbackQueue.PostSyncWorkItem(new WinEventQueueItem(eventWrapper, WinEventQueueItem.StopListening));
                _winEventTrackers[(int)idx] = null;

                CheckStopCallbackQueueing();
            }
        }