internal void CriticalUnregisterKeyboardInputSink(HwndSourceKeyboardInputSite site) { if(_isDisposed) return; if (null != _keyboardInputSinkChildren) { if (!_keyboardInputSinkChildren.Remove(site)) { throw new InvalidOperationException(SR.Get(SRID.KeyboardSinkNotAChild)); } } }
protected IKeyboardInputSite RegisterKeyboardInputSinkCore(IKeyboardInputSink sink) { CheckDisposed(true); if (sink == null) { throw new ArgumentNullException("sink"); } if (sink.KeyboardInputSite != null) { throw new ArgumentException(SR.Get(SRID.KeyboardSinkAlreadyOwned)); } HwndSourceKeyboardInputSite site = new HwndSourceKeyboardInputSite(this, sink); if (_keyboardInputSinkChildren == null) _keyboardInputSinkChildren = new List<HwndSourceKeyboardInputSite>(); _keyboardInputSinkChildren.Add(site); return site; }