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
- SynchronizedMessageSource.cs
- ResourceCollectionInfo.cs
- SelectionRange.cs
- AuthenticationService.cs
- UInt16Storage.cs
- Inflater.cs
- BezierSegment.cs
- BrowserCapabilitiesFactoryBase.cs
- StrictAndMessageFilter.cs
- PassportAuthenticationEventArgs.cs
- AppModelKnownContentFactory.cs
- GeometryConverter.cs
- RegistryPermission.cs
- panel.cs
- WhitespaceRuleReader.cs
- PageAsyncTask.cs
- PropertyPathConverter.cs
- NewItemsContextMenuStrip.cs
- _TransmitFileOverlappedAsyncResult.cs
- PassportAuthenticationModule.cs
- ResponseStream.cs
- DrawingState.cs
- XmlSchema.cs
- XmlNamedNodeMap.cs
- DeclarativeCatalogPartDesigner.cs
- DataBoundControlAdapter.cs
- NodeLabelEditEvent.cs
- _IPv6Address.cs
- designeractionlistschangedeventargs.cs
- MappingException.cs
- IMembershipProvider.cs
- ControlAdapter.cs
- GridProviderWrapper.cs
- StrongNameUtility.cs
- Shared.cs
- VarRemapper.cs
- securitycriticaldataformultiplegetandset.cs
- BitVector32.cs
- DateTimeValueSerializerContext.cs
- GridViewDeletedEventArgs.cs
- CircleHotSpot.cs
- ComponentResourceKey.cs
- XmlSchemaSimpleContentExtension.cs
- StateMachineDesignerPaint.cs
- SoapSchemaImporter.cs
- JsonFormatReaderGenerator.cs
- TextElementCollection.cs
- TagNameToTypeMapper.cs
- CqlIdentifiers.cs
- ExpressionStringBuilder.cs
- SessionIDManager.cs
- HandlerWithFactory.cs
- Point3DCollection.cs
- StringSorter.cs
- BinaryWriter.cs
- WrapPanel.cs
- TimeoutException.cs
- CheckableControlBaseAdapter.cs
- RenderDataDrawingContext.cs
- GridViewUpdateEventArgs.cs
- ShaderEffect.cs
- VarInfo.cs
- CodePrimitiveExpression.cs
- ButtonColumn.cs
- PageContentCollection.cs
- EventRoute.cs
- TimeSpanValidator.cs
- SqlDataRecord.cs
- JsonXmlDataContract.cs
- XmlSchemaAttributeGroupRef.cs
- SqlConnectionPoolGroupProviderInfo.cs
- XmlAnyElementAttribute.cs
- ZipIOExtraFieldPaddingElement.cs
- SqlXml.cs
- DetailsViewUpdateEventArgs.cs
- XmlSchemaProviderAttribute.cs
- TabItem.cs
- FrameworkPropertyMetadata.cs
- FieldNameLookup.cs
- ChineseLunisolarCalendar.cs
- SplineQuaternionKeyFrame.cs
- EntityContainer.cs
- QilXmlReader.cs
- HtmlInputSubmit.cs
- RequestReplyCorrelator.cs
- TableLayoutPanelCellPosition.cs
- LingerOption.cs
- AssemblyUtil.cs
- Dump.cs
- Base64Stream.cs
- _ConnectStream.cs
- SingleSelectRootGridEntry.cs
- EnumCodeDomSerializer.cs
- ErrorLog.cs
- CompoundFileIOPermission.cs
- NavigationExpr.cs
- ObjectViewFactory.cs
- WebServiceEnumData.cs
- XmlReader.cs
- SourceSwitch.cs