Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / InterOp / HwndSourceKeyboardInputSite.cs / 1407647 / 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 { ////// Critical: satisfies a LinkDemand for 'UIPermissionAttribute' on method /// 'System.Windows.Interop.IKeyboardInputSink.set_KeyboardInputSite(System.Windows.Interop.IKeyboardInputSite)'. /// [SecurityCritical] 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
- Handle.cs
- ApplicationSecurityInfo.cs
- TemplateField.cs
- DmlSqlGenerator.cs
- ElementUtil.cs
- SerializerDescriptor.cs
- SupportsEventValidationAttribute.cs
- UpdateTracker.cs
- ExceptionRoutedEventArgs.cs
- NullableDecimalAverageAggregationOperator.cs
- xml.cs
- JsonFormatWriterGenerator.cs
- ValueTable.cs
- ApplicationServicesHostFactory.cs
- ZipArchive.cs
- PropertyTabChangedEvent.cs
- RequestCachePolicyConverter.cs
- Exceptions.cs
- BatchWriter.cs
- XmlMapping.cs
- GridViewCommandEventArgs.cs
- ActivityExecutorOperation.cs
- TiffBitmapDecoder.cs
- IconHelper.cs
- ObjectTypeMapping.cs
- TextSchema.cs
- ConsoleTraceListener.cs
- ButtonBase.cs
- MergeFailedEvent.cs
- PeerIPHelper.cs
- AsymmetricSignatureDeformatter.cs
- MimeTypeMapper.cs
- ContentTypeSettingClientMessageFormatter.cs
- DBSqlParserTable.cs
- ConfigPathUtility.cs
- CommunicationObjectManager.cs
- SafeSerializationManager.cs
- AnonymousIdentificationSection.cs
- Size.cs
- CollectionChangeEventArgs.cs
- ToolStripItemEventArgs.cs
- ChangeBlockUndoRecord.cs
- MetadataUtilsSmi.cs
- CfgArc.cs
- HttpServerUtilityBase.cs
- InfoCardAsymmetricCrypto.cs
- ServiceReference.cs
- ServiceErrorHandler.cs
- CapabilitiesPattern.cs
- WebPartCancelEventArgs.cs
- FormatConvertedBitmap.cs
- oledbmetadatacollectionnames.cs
- Internal.cs
- SqlVisitor.cs
- CssStyleCollection.cs
- AstTree.cs
- DataKey.cs
- DurableTimerExtension.cs
- SelectionEditingBehavior.cs
- ListenerAdaptersInstallComponent.cs
- MissingManifestResourceException.cs
- DocumentApplication.cs
- XhtmlMobileTextWriter.cs
- CharacterMetricsDictionary.cs
- InvokeGenerator.cs
- ThreadAttributes.cs
- SequenceFullException.cs
- CollectionsUtil.cs
- ReaderWriterLock.cs
- ProcessModelInfo.cs
- SpecularMaterial.cs
- MergeFailedEvent.cs
- PageThemeParser.cs
- MessageQueueException.cs
- TextFormatterHost.cs
- Component.cs
- Matrix.cs
- ProjectionPlanCompiler.cs
- UTF7Encoding.cs
- QueryStatement.cs
- ImmutablePropertyDescriptorGridEntry.cs
- SapiRecognizer.cs
- QilXmlWriter.cs
- TaskFormBase.cs
- ColorKeyFrameCollection.cs
- RTTrackingProfile.cs
- TitleStyle.cs
- ButtonAutomationPeer.cs
- EntitySet.cs
- EventMappingSettingsCollection.cs
- DocumentOrderQuery.cs
- EUCJPEncoding.cs
- CollectionEditorDialog.cs
- ISAPIWorkerRequest.cs
- TextElementCollection.cs
- WsdlBuildProvider.cs
- Utils.cs
- ImmComposition.cs
- OpacityConverter.cs
- AutomationFocusChangedEventArgs.cs