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
- XmlHelper.cs
- LoginStatusDesigner.cs
- SmtpMail.cs
- ParserExtension.cs
- ContextConfiguration.cs
- _ListenerResponseStream.cs
- NameValuePair.cs
- RadioButton.cs
- ClientConvert.cs
- HitTestWithGeometryDrawingContextWalker.cs
- WinFormsSecurity.cs
- MembershipValidatePasswordEventArgs.cs
- Stacktrace.cs
- SegmentInfo.cs
- XmlSchemaInclude.cs
- DesignerPainter.cs
- ProtocolsSection.cs
- DetailsViewRowCollection.cs
- ServicesUtilities.cs
- securestring.cs
- XhtmlBasicPanelAdapter.cs
- DSACryptoServiceProvider.cs
- x509utils.cs
- Substitution.cs
- AttributeCollection.cs
- Confirm.cs
- CalendarAutoFormatDialog.cs
- Parser.cs
- NativeMethods.cs
- Debug.cs
- Array.cs
- ToolStripPanelRenderEventArgs.cs
- DropDownButton.cs
- ContextMenuStripGroupCollection.cs
- TemplatedEditableDesignerRegion.cs
- EmptyQuery.cs
- GridLength.cs
- CircleEase.cs
- StandardCommands.cs
- BinaryNode.cs
- HyperLinkColumn.cs
- ResourceSetExpression.cs
- RectKeyFrameCollection.cs
- ParserExtension.cs
- SqlReorderer.cs
- Point.cs
- SchemaTableOptionalColumn.cs
- GradientBrush.cs
- ParameterElement.cs
- Cursor.cs
- ECDiffieHellmanPublicKey.cs
- EventLogPermissionEntryCollection.cs
- KeyInstance.cs
- WebPartConnectionsDisconnectVerb.cs
- HtmlWindow.cs
- ObjectParameterCollection.cs
- UnmanagedMemoryStreamWrapper.cs
- BaseDataBoundControl.cs
- Queue.cs
- QuotedPairReader.cs
- UniqueIdentifierService.cs
- HwndKeyboardInputProvider.cs
- Calendar.cs
- SchemaType.cs
- COM2ColorConverter.cs
- WorkflowDispatchContext.cs
- WebServiceClientProxyGenerator.cs
- GetPageNumberCompletedEventArgs.cs
- GridViewRowEventArgs.cs
- DependentTransaction.cs
- DragDrop.cs
- CodeGroup.cs
- MdiWindowListItemConverter.cs
- QilExpression.cs
- StyleHelper.cs
- RpcAsyncResult.cs
- BuildProviderAppliesToAttribute.cs
- Native.cs
- HttpResponseInternalWrapper.cs
- LineBreakRecord.cs
- GridEntry.cs
- RegexMatch.cs
- DuplicateWaitObjectException.cs
- XmlFileEditor.cs
- SvcMapFile.cs
- InputBuffer.cs
- SqlClientWrapperSmiStream.cs
- WaitHandle.cs
- OleServicesContext.cs
- DesignerDataColumn.cs
- DocumentPaginator.cs
- _BufferOffsetSize.cs
- PenContexts.cs
- BypassElementCollection.cs
- Matrix.cs
- AppSecurityManager.cs
- SqlError.cs
- SerializeAbsoluteContext.cs
- EntityFrameworkVersions.cs
- DefaultTextStoreTextComposition.cs