예제 #1
0
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    _initialTimeoutTimer?.Dispose();
                    _blockTouchDelayTimer?.Dispose();
                    _pointerInputTargetWindow?.Dispose();
                    _inputProvider?.Dispose();
                    _surfaceForm?.Dispose();
                }
                _surfaceForm = null;

                SystemEvents.SessionSwitch -= SystemEvents_SessionSwitch;
                if (_hWinEventHook != IntPtr.Zero)
                {
                    UnhookWinEvent(_hWinEventHook);
                }
                if (_winEventGch.IsAllocated)
                {
                    _winEventGch.Free();
                }

                disposedValue = true;
            }
        }
예제 #2
0
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    _pointerInputTargetWindow?.Dispose();
                    _inputProvider?.Dispose();
                    _timeoutTimer?.Dispose();
                }

                if (_hWinEventHook != IntPtr.Zero)
                {
                    UnhookWinEvent(_hWinEventHook);
                }

                disposedValue = true;
            }
        }