Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / InterOp / HwndSourceKeyboardInputSite.cs / 1 / HwndSourceKeyboardInputSite.cs
using System; using System.Windows.Input; using System.Collections; using MS.Win32; using System.Windows.Media; using System.Windows.Threading; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; using System.Security ; using MS.Internal.PresentationCore; namespace System.Windows.Interop { internal class HwndSourceKeyboardInputSite : IKeyboardInputSite { public HwndSourceKeyboardInputSite(HwndSource source, IKeyboardInputSink sink) { if(source == null) { throw new ArgumentNullException("source"); } if(sink == null) { throw new ArgumentNullException("sink"); } if(!(sink is UIElement)) { throw new ArgumentException(SR.Get(SRID.KeyboardSinkMustBeAnElement), "sink"); } _source = source; _sink = sink; _sink.KeyboardInputSite = this; _sinkElement = sink as UIElement; } #region IKeyboardInputSite ////// Unregisters a child KeyboardInputSink from this sink. /// ////// Requires unmanaged code permission. /// ////// Critical - calls CriticalUnregister. /// TreatAsSafe: - Interface declaration demands unrestricted UI permission /// [ SecurityCritical,SecurityTreatAsSafe ] void IKeyboardInputSite.Unregister() { CriticalUnregister(); } ////// Unregisters a child KeyboardInputSink from this sink. /// ////// Critical - calls CriticalUnregisterKeyboardInputSink /// [ SecurityCritical ] internal void CriticalUnregister() { if(_source != null && _sink != null) { _source.CriticalUnregisterKeyboardInputSink(this); _sink.KeyboardInputSite = null; } _source = null; _sink = null; } ////// Returns the sink associated with this site (the "child", not /// the "parent" sink that owns the site). There's no way of /// getting from the site to the parent sink. /// IKeyboardInputSink IKeyboardInputSite.Sink { get { return _sink; } } ////// Components call this when they want to move focus ("tab") but /// have nowhere further to tab within their own component. Return /// value is true if the site moved focus, false if the calling /// component still has focus and should wrap around. /// bool IKeyboardInputSite.OnNoMoreTabStops(TraversalRequest request) { bool traversed = false; if(_sinkElement != null) { traversed = _sinkElement.MoveFocus(request); } return traversed; } #endregion IKeyboardInputSite private HwndSource _source; private IKeyboardInputSink _sink; private UIElement _sinkElement; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Windows.Input; using System.Collections; using MS.Win32; using System.Windows.Media; using System.Windows.Threading; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; using System.Security ; using MS.Internal.PresentationCore; namespace System.Windows.Interop { internal class HwndSourceKeyboardInputSite : IKeyboardInputSite { public HwndSourceKeyboardInputSite(HwndSource source, IKeyboardInputSink sink) { if(source == null) { throw new ArgumentNullException("source"); } if(sink == null) { throw new ArgumentNullException("sink"); } if(!(sink is UIElement)) { throw new ArgumentException(SR.Get(SRID.KeyboardSinkMustBeAnElement), "sink"); } _source = source; _sink = sink; _sink.KeyboardInputSite = this; _sinkElement = sink as UIElement; } #region IKeyboardInputSite ////// Unregisters a child KeyboardInputSink from this sink. /// ////// Requires unmanaged code permission. /// ////// Critical - calls CriticalUnregister. /// TreatAsSafe: - Interface declaration demands unrestricted UI permission /// [ SecurityCritical,SecurityTreatAsSafe ] void IKeyboardInputSite.Unregister() { CriticalUnregister(); } ////// Unregisters a child KeyboardInputSink from this sink. /// ////// Critical - calls CriticalUnregisterKeyboardInputSink /// [ SecurityCritical ] internal void CriticalUnregister() { if(_source != null && _sink != null) { _source.CriticalUnregisterKeyboardInputSink(this); _sink.KeyboardInputSite = null; } _source = null; _sink = null; } ////// Returns the sink associated with this site (the "child", not /// the "parent" sink that owns the site). There's no way of /// getting from the site to the parent sink. /// IKeyboardInputSink IKeyboardInputSite.Sink { get { return _sink; } } ////// Components call this when they want to move focus ("tab") but /// have nowhere further to tab within their own component. Return /// value is true if the site moved focus, false if the calling /// component still has focus and should wrap around. /// bool IKeyboardInputSite.OnNoMoreTabStops(TraversalRequest request) { bool traversed = false; if(_sinkElement != null) { traversed = _sinkElement.MoveFocus(request); } return traversed; } #endregion IKeyboardInputSite private HwndSource _source; private IKeyboardInputSink _sink; private UIElement _sinkElement; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MessageQueueInstaller.cs
- InputBindingCollection.cs
- StylusShape.cs
- DataGridViewColumnStateChangedEventArgs.cs
- IndexOutOfRangeException.cs
- RegisteredArrayDeclaration.cs
- CellTreeNode.cs
- GenericTypeParameterBuilder.cs
- SQLStringStorage.cs
- AttachInfo.cs
- TableChangeProcessor.cs
- MatchingStyle.cs
- TextBounds.cs
- LayoutTableCell.cs
- FaultDescription.cs
- SQLStringStorage.cs
- PathNode.cs
- InstanceOwnerQueryResult.cs
- Content.cs
- PerformanceCounterCategory.cs
- RichTextBoxAutomationPeer.cs
- AuthenticationModuleElement.cs
- CultureInfoConverter.cs
- FontFamily.cs
- StylusTip.cs
- ipaddressinformationcollection.cs
- AutomationPattern.cs
- CatalogPartDesigner.cs
- ToolStripDropDown.cs
- WebConfigManager.cs
- DataTableExtensions.cs
- DataGridViewDataConnection.cs
- ThicknessConverter.cs
- CustomValidator.cs
- TemplateControlCodeDomTreeGenerator.cs
- EnumerableCollectionView.cs
- InvalidOleVariantTypeException.cs
- PersonalizableAttribute.cs
- XmlBinaryReader.cs
- CurrentChangedEventManager.cs
- GatewayIPAddressInformationCollection.cs
- AssociationSetEnd.cs
- FocusTracker.cs
- TextRangeEditTables.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- OdbcDataReader.cs
- WpfXamlMember.cs
- XmlQueryType.cs
- ImageConverter.cs
- EntityViewGenerator.cs
- PolyQuadraticBezierSegment.cs
- SerializeAbsoluteContext.cs
- UriParserTemplates.cs
- DelegateHelpers.cs
- GradientStop.cs
- SelectorAutomationPeer.cs
- CodeTryCatchFinallyStatement.cs
- FixUpCollection.cs
- PenContext.cs
- RuntimeIdentifierPropertyAttribute.cs
- SafeArrayTypeMismatchException.cs
- ArgumentValidation.cs
- XMLSyntaxException.cs
- RadioButton.cs
- Privilege.cs
- DropAnimation.xaml.cs
- RoleGroupCollectionEditor.cs
- BitmapCodecInfoInternal.cs
- ObjectReaderCompiler.cs
- SiteMapNodeItemEventArgs.cs
- SerializationInfoEnumerator.cs
- Pen.cs
- IndexedString.cs
- documentsequencetextview.cs
- AdPostCacheSubstitution.cs
- xamlnodes.cs
- TypeExtension.cs
- UpdateRecord.cs
- ClickablePoint.cs
- DelegateBodyWriter.cs
- TableParagraph.cs
- HtmlDocument.cs
- IsolatedStorageFileStream.cs
- commandenforcer.cs
- BehaviorEditorPart.cs
- PersianCalendar.cs
- TabletDevice.cs
- TemplateNodeContextMenu.cs
- DocumentAutomationPeer.cs
- WebPartDisplayModeEventArgs.cs
- AccessorTable.cs
- BasicKeyConstraint.cs
- HtmlToClrEventProxy.cs
- CopyNodeSetAction.cs
- RootDesignerSerializerAttribute.cs
- Misc.cs
- QueryOperatorEnumerator.cs
- OleDbRowUpdatingEvent.cs
- RelatedImageListAttribute.cs
- BlurBitmapEffect.cs