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
- RoutedCommand.cs
- CompilationRelaxations.cs
- EndEvent.cs
- RemotingClientProxy.cs
- MethodBody.cs
- StreamGeometry.cs
- SecondaryIndex.cs
- EntityDataSourceWrapperCollection.cs
- QilReference.cs
- Hash.cs
- SimpleType.cs
- LostFocusEventManager.cs
- Size3D.cs
- CheckoutException.cs
- SuppressMessageAttribute.cs
- ActivationWorker.cs
- DefinitionBase.cs
- TreeNodeEventArgs.cs
- FullTextState.cs
- TextBox.cs
- XmlSchemaAnnotated.cs
- EmptyReadOnlyDictionaryInternal.cs
- FormsAuthenticationCredentials.cs
- LeaseManager.cs
- SplashScreenNativeMethods.cs
- Int16Animation.cs
- ToolStripItemDesigner.cs
- OdbcRowUpdatingEvent.cs
- AssemblyAssociatedContentFileAttribute.cs
- ConnectionInterfaceCollection.cs
- AnnotationElement.cs
- XPathExpr.cs
- TemplateInstanceAttribute.cs
- DictionaryGlobals.cs
- BlurEffect.cs
- Scheduling.cs
- ClassDataContract.cs
- StylusCaptureWithinProperty.cs
- FixedTextView.cs
- WebSysDisplayNameAttribute.cs
- InternalDispatchObject.cs
- FormatSettings.cs
- SmtpMail.cs
- ModifierKeysConverter.cs
- PolicyValidationException.cs
- SortExpressionBuilder.cs
- XmlHierarchyData.cs
- XPathExpr.cs
- ToggleButton.cs
- BitStack.cs
- TraceProvider.cs
- RectangleHotSpot.cs
- Rfc2898DeriveBytes.cs
- GenericIdentity.cs
- ItemCollection.cs
- KeyValuePairs.cs
- HttpApplication.cs
- HttpContext.cs
- ComponentEditorForm.cs
- CorrelationQueryBehavior.cs
- MLangCodePageEncoding.cs
- XomlDesignerLoader.cs
- MatchingStyle.cs
- AggregatePushdown.cs
- StylusEditingBehavior.cs
- JsonDataContract.cs
- Visual3D.cs
- XmlMemberMapping.cs
- _DigestClient.cs
- SectionUpdates.cs
- MessageCredentialType.cs
- NativeMethods.cs
- TraceSection.cs
- BoolExpression.cs
- DocumentOrderQuery.cs
- WebBrowsableAttribute.cs
- SafeCryptContextHandle.cs
- MultiBinding.cs
- TransformProviderWrapper.cs
- NonClientArea.cs
- ServiceOperation.cs
- StrokeRenderer.cs
- SqlInfoMessageEvent.cs
- ResourceExpressionBuilder.cs
- SmiEventSink_Default.cs
- DependencyPropertyKey.cs
- ComponentResourceKeyConverter.cs
- ParseElementCollection.cs
- XmlReader.cs
- BypassElementCollection.cs
- ContentPropertyAttribute.cs
- SchemaMapping.cs
- CodePageEncoding.cs
- MergeLocalizationDirectives.cs
- NegationPusher.cs
- PageAsyncTaskManager.cs
- PeerNameResolver.cs
- EntityObject.cs
- BehaviorEditorPart.cs
- controlskin.cs