Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / InterOp / HwndSourceKeyboardInputSite.cs / 2 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RoutedEvent.cs
- Exceptions.cs
- DbDataReader.cs
- RedirectionProxy.cs
- streamingZipPartStream.cs
- RegexNode.cs
- Logging.cs
- FixedTextSelectionProcessor.cs
- DataGridViewButtonCell.cs
- XmlNodeList.cs
- GenericsNotImplementedException.cs
- HtmlInputImage.cs
- AuthenticationServiceManager.cs
- GifBitmapDecoder.cs
- QilInvokeEarlyBound.cs
- ListView.cs
- XmlSchemaSimpleContentExtension.cs
- StatusBarPanel.cs
- StringOutput.cs
- AuthStoreRoleProvider.cs
- XmlSerializerFormatAttribute.cs
- Random.cs
- ProcessRequestArgs.cs
- XPathDescendantIterator.cs
- RuntimeArgumentHandle.cs
- RectAnimationUsingKeyFrames.cs
- XmlSchemaRedefine.cs
- ObjectDataSourceFilteringEventArgs.cs
- Figure.cs
- WebPartTransformerCollection.cs
- EncryptedKeyHashIdentifierClause.cs
- XsdCachingReader.cs
- Roles.cs
- DbReferenceCollection.cs
- CodeComment.cs
- FrameworkElementFactoryMarkupObject.cs
- SizeF.cs
- AuthenticationModuleElement.cs
- DataServiceQueryException.cs
- TabPage.cs
- StringSorter.cs
- PropertyMetadata.cs
- TableLayoutColumnStyleCollection.cs
- ReachUIElementCollectionSerializer.cs
- XmlAnyElementAttribute.cs
- ServiceMetadataBehavior.cs
- TraceContextRecord.cs
- Utils.cs
- StorageAssociationTypeMapping.cs
- _SecureChannel.cs
- ReadOnlyDataSource.cs
- SubpageParaClient.cs
- ClientScriptItem.cs
- ContentType.cs
- DateRangeEvent.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- DynamicQueryableWrapper.cs
- StatusStrip.cs
- HtmlTableCellCollection.cs
- KeyToListMap.cs
- RequiredFieldValidator.cs
- PathTooLongException.cs
- StickyNoteHelper.cs
- XPathAncestorQuery.cs
- ObjectReaderCompiler.cs
- IntersectQueryOperator.cs
- MiniParameterInfo.cs
- ErrorWrapper.cs
- WebProxyScriptElement.cs
- ValidationError.cs
- XmlILConstructAnalyzer.cs
- IdentityReference.cs
- ItemsControlAutomationPeer.cs
- QueryResponse.cs
- MemberJoinTreeNode.cs
- BoundingRectTracker.cs
- connectionpool.cs
- TransportBindingElement.cs
- NetWebProxyFinder.cs
- ExtendedTransformFactory.cs
- DoubleMinMaxAggregationOperator.cs
- XmlSchemaSimpleContentRestriction.cs
- ColumnBinding.cs
- ActiveDocumentEvent.cs
- ErrorInfoXmlDocument.cs
- PointCollectionConverter.cs
- QueryUtil.cs
- ScopedMessagePartSpecification.cs
- ValidatorCollection.cs
- DesignerTransactionCloseEvent.cs
- precedingquery.cs
- FacetValueContainer.cs
- BaseComponentEditor.cs
- FileRecordSequenceHelper.cs
- ClientBuildManager.cs
- DispatcherEventArgs.cs
- TypeSystemProvider.cs
- ContentIterators.cs
- Send.cs
- TextBounds.cs