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
- BuildProvider.cs
- WindowAutomationPeer.cs
- ToolStripDropDownButton.cs
- CodeDOMProvider.cs
- SafeCertificateContext.cs
- ConfigViewGenerator.cs
- CodeTypeParameter.cs
- ValidationPropertyAttribute.cs
- MetaDataInfo.cs
- DataGridPagerStyle.cs
- XsdDataContractExporter.cs
- SqlBulkCopy.cs
- WebHeaderCollection.cs
- SerializationInfoEnumerator.cs
- XmlSchemaComplexContentExtension.cs
- SerializationFieldInfo.cs
- RtfControls.cs
- PaintEvent.cs
- KeyGestureValueSerializer.cs
- FileDialog_Vista_Interop.cs
- PrimitiveXmlSerializers.cs
- LicFileLicenseProvider.cs
- Rules.cs
- CompareInfo.cs
- PropertyGridEditorPart.cs
- RegexRunnerFactory.cs
- EntityParameter.cs
- ContractReference.cs
- TimeZoneNotFoundException.cs
- SmuggledIUnknown.cs
- Object.cs
- XPathDescendantIterator.cs
- ComplexObject.cs
- Stylus.cs
- XmlSchemaProviderAttribute.cs
- Decoder.cs
- XamlSerializationHelper.cs
- TabControlCancelEvent.cs
- PeerCredentialElement.cs
- ExecutedRoutedEventArgs.cs
- PermissionSetEnumerator.cs
- ActivationServices.cs
- Point3DKeyFrameCollection.cs
- PartialCachingAttribute.cs
- ProfileParameter.cs
- BypassElementCollection.cs
- DirectionalLight.cs
- DynamicActionMessageFilter.cs
- ExpressionVisitorHelpers.cs
- LineVisual.cs
- JpegBitmapEncoder.cs
- UnderstoodHeaders.cs
- CollectionBase.cs
- cache.cs
- FunctionCommandText.cs
- LateBoundBitmapDecoder.cs
- ColumnHeader.cs
- PolygonHotSpot.cs
- ExtendedPropertiesHandler.cs
- MenuItemBinding.cs
- QueryCacheEntry.cs
- ObjectContextServiceProvider.cs
- NodeLabelEditEvent.cs
- VolatileEnlistmentMultiplexing.cs
- XsltException.cs
- MenuCommand.cs
- Update.cs
- RootNamespaceAttribute.cs
- NullableLongAverageAggregationOperator.cs
- LinearGradientBrush.cs
- SqlClientFactory.cs
- MissingFieldException.cs
- ProviderBase.cs
- RowVisual.cs
- WindowsRichEditRange.cs
- Baml2006ReaderSettings.cs
- KeyFrames.cs
- OleDbWrapper.cs
- UriParserTemplates.cs
- XomlCompiler.cs
- XomlDesignerLoader.cs
- AppSettingsExpressionBuilder.cs
- SubstitutionList.cs
- PackUriHelper.cs
- DataServiceCollectionOfT.cs
- DragStartedEventArgs.cs
- InboundActivityHelper.cs
- XmlAtomicValue.cs
- XPathNavigatorReader.cs
- CodeTypeDelegate.cs
- Lease.cs
- Int16Animation.cs
- Assembly.cs
- CrossAppDomainChannel.cs
- ConsumerConnectionPoint.cs
- smtpconnection.cs
- SubstitutionList.cs
- SqlUtil.cs
- QueryPrefixOp.cs
- TaiwanCalendar.cs