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
- Paragraph.cs
- CheckBoxRenderer.cs
- InteropAutomationProvider.cs
- ScrollViewerAutomationPeer.cs
- QueryOpeningEnumerator.cs
- TextServicesCompartment.cs
- DbConnectionClosed.cs
- XPathChildIterator.cs
- XmlAnyElementAttributes.cs
- TreeBuilderBamlTranslator.cs
- RotateTransform3D.cs
- TraceLevelStore.cs
- HashLookup.cs
- DefaultSection.cs
- ElementProxy.cs
- ComponentGlyph.cs
- AppearanceEditorPart.cs
- Wizard.cs
- ImageBrush.cs
- precedingsibling.cs
- InputBinder.cs
- ScriptComponentDescriptor.cs
- PositiveTimeSpanValidator.cs
- XmlDataImplementation.cs
- TextParagraphView.cs
- CodeDelegateInvokeExpression.cs
- RequestTimeoutManager.cs
- AttachmentService.cs
- InputElement.cs
- EntitySetBase.cs
- ClientTarget.cs
- Vertex.cs
- MetadataItemSerializer.cs
- TextSelection.cs
- ErrorTableItemStyle.cs
- OperationResponse.cs
- VersionedStreamOwner.cs
- FrameworkEventSource.cs
- XmlSiteMapProvider.cs
- UseAttributeSetsAction.cs
- SQLConvert.cs
- CompModHelpers.cs
- XmlCharType.cs
- DetailsViewRow.cs
- XmlUtilWriter.cs
- XmlSchemaAnnotated.cs
- WSDualHttpSecurityMode.cs
- PropertyRef.cs
- _TimerThread.cs
- Select.cs
- DbUpdateCommandTree.cs
- StylusOverProperty.cs
- ButtonChrome.cs
- DesignOnlyAttribute.cs
- ScrollProviderWrapper.cs
- MarkupExtensionSerializer.cs
- DrawListViewItemEventArgs.cs
- HwndHostAutomationPeer.cs
- DefaultTraceListener.cs
- UrlMapping.cs
- DelegateBodyWriter.cs
- TPLETWProvider.cs
- NamespaceEmitter.cs
- ReflectPropertyDescriptor.cs
- ItemList.cs
- ExpressionCopier.cs
- filewebrequest.cs
- ResourcePermissionBase.cs
- StorageModelBuildProvider.cs
- HtmlInputControl.cs
- ReadOnlyObservableCollection.cs
- UnionCodeGroup.cs
- TailCallAnalyzer.cs
- ApplicationTrust.cs
- XsdCachingReader.cs
- _UncName.cs
- WebResponse.cs
- _HeaderInfoTable.cs
- IDReferencePropertyAttribute.cs
- nulltextnavigator.cs
- Frame.cs
- ComponentCollection.cs
- PrefixQName.cs
- URLAttribute.cs
- TraceInternal.cs
- IndexedString.cs
- MimeWriter.cs
- MsmqIntegrationReceiveParameters.cs
- PostBackOptions.cs
- VerificationException.cs
- ToolStripItemDesigner.cs
- DataColumnPropertyDescriptor.cs
- RawUIStateInputReport.cs
- XmlMemberMapping.cs
- RuleRefElement.cs
- counter.cs
- PathFigure.cs
- WrappedKeySecurityTokenParameters.cs
- VectorAnimationUsingKeyFrames.cs
- AppDomainProtocolHandler.cs