internal ButtonDevice(InputManager inputManager)
        {
            _inputManager = inputManager;

            _inputManager.InputDeviceEvents[(int)InputManager.InputDeviceType.Button].PreNotifyInput += new NotifyInputEventHandler(PreNotifyInput);
            _inputManager.InputDeviceEvents[(int)InputManager.InputDeviceType.Button].PostProcessInput += new ProcessInputEventHandler(PostProcessInput);

            _isEnabledOrVisibleChangedEventHandler = new PropertyChangedEventHandler(OnIsEnabledOrVisibleChanged);
        }
        internal InputProviderSite(InputManager inputManager, object inputProvider)
        {
            if (inputManager == null)
            {
                throw new ArgumentNullException("inputManager");
            }

            _inputManager = inputManager;
            _inputProvider = inputProvider;
        }
        internal GenericDevice(InputManager inputManager)
        {
            _inputManager = inputManager;

            _inputManager.InputDeviceEvents[(int)InputManager.InputDeviceType.Generic].PostProcessInput += new ProcessInputEventHandler(PostProcessInput);
        }