Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Input / Win32KeyboardDevice.cs / 1 / Win32KeyboardDevice.cs
using System.Collections; using System.Windows; using System.Security; using System.Security.Permissions; using MS.Internal; using MS.Internal.PresentationCore; // SecurityHelper using System.Windows.Media; using MS.Win32; // VK translation. using System; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Input { ////// The Win32KeyboardDevice class implements the platform specific /// KeyboardDevice features for the Win32 platform /// internal sealed class Win32KeyboardDevice : KeyboardDevice { ////// /// /// /// ////// Critical: This code creates critical data(_tsfManager,_textcompositionManager) and stores critical data (inputManager) /// TreatAsSafe: Although it creates critical data there are demand on the critical data and the constructor is safe /// [SecurityCritical,SecurityTreatAsSafe] internal Win32KeyboardDevice(InputManager inputManager) : base(inputManager) { } ////// Gets the current state of the specified key from the device from the underlying system /// /// /// Key to get the state of /// ////// The state of the specified key /// ////// Critical: Makes calls to UnsafeNativeMethods (GetKeyState) /// TreatAsSafe: Only returns the current state of a specified key /// [SecurityCritical, SecurityTreatAsSafe] protected override KeyStates GetKeyStatesFromSystem(Key key) { KeyStates keyStates = KeyStates.None; // Security Mitigation: do not give out input state if the device is not active. if(IsActive) { int virtualKeyCode = KeyInterop.VirtualKeyFromKey(key); int nativeKeyState; nativeKeyState = UnsafeNativeMethods.GetKeyState(virtualKeyCode); if( (nativeKeyState & 0x00008000) == 0x00008000 ) keyStates |= KeyStates.Down; if( (nativeKeyState & 0x00000001) == 0x00000001 ) keyStates |= KeyStates.Toggled; } return keyStates; } } } // 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
- XmlSchemaDocumentation.cs
- CodeGotoStatement.cs
- ScopelessEnumAttribute.cs
- DbConvert.cs
- SqlTriggerAttribute.cs
- PropertyChangingEventArgs.cs
- XmlSchemaAnnotated.cs
- IDispatchConstantAttribute.cs
- XamlGridLengthSerializer.cs
- CmsUtils.cs
- Monitor.cs
- Types.cs
- SerializerDescriptor.cs
- Tool.cs
- ConnectionStringsSection.cs
- ObjectTypeMapping.cs
- SharedPerformanceCounter.cs
- RequestCacheValidator.cs
- EditorPart.cs
- NavigationProperty.cs
- UnsafeNativeMethods.cs
- DuplexChannelBinder.cs
- XmlReflectionMember.cs
- StyleTypedPropertyAttribute.cs
- Package.cs
- DataGridViewIntLinkedList.cs
- Rotation3DAnimationUsingKeyFrames.cs
- ClientOptions.cs
- SimpleHandlerFactory.cs
- RequestTimeoutManager.cs
- _BasicClient.cs
- ServiceModelReg.cs
- BindableAttribute.cs
- Listbox.cs
- TokenBasedSet.cs
- HttpContextWrapper.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TrueReadOnlyCollection.cs
- MediaPlayer.cs
- VersionPair.cs
- QilSortKey.cs
- Hex.cs
- SendSecurityHeaderElement.cs
- AnnotationElement.cs
- DateTimeParse.cs
- ComponentChangingEvent.cs
- XmlSchemaAppInfo.cs
- Evaluator.cs
- Substitution.cs
- FloaterParaClient.cs
- DataAdapter.cs
- ListViewHitTestInfo.cs
- MouseBinding.cs
- FamilyMapCollection.cs
- MultitargetingHelpers.cs
- RowUpdatedEventArgs.cs
- SoapSchemaExporter.cs
- ApplicationActivator.cs
- LingerOption.cs
- IResourceProvider.cs
- SqlProvider.cs
- AdornerLayer.cs
- XmlIgnoreAttribute.cs
- Label.cs
- SmtpLoginAuthenticationModule.cs
- DetailsViewPagerRow.cs
- InstanceHandleConflictException.cs
- TemplateBindingExpression.cs
- EntityDataSourceColumn.cs
- DesignerLoader.cs
- Page.cs
- TextMetrics.cs
- XmlReader.cs
- WinFormsUtils.cs
- DocumentPage.cs
- DockPatternIdentifiers.cs
- GridViewDeleteEventArgs.cs
- FixedTextBuilder.cs
- Maps.cs
- SynchronizedDispatch.cs
- XPathAncestorQuery.cs
- TemplateInstanceAttribute.cs
- ProvideValueServiceProvider.cs
- ComponentChangedEvent.cs
- MessageBox.cs
- Missing.cs
- SemanticResolver.cs
- DataGridPageChangedEventArgs.cs
- CfgRule.cs
- SafePEFileHandle.cs
- QueryResponse.cs
- XmlRawWriter.cs
- DataGridCommandEventArgs.cs
- ResolveCriteriaApril2005.cs
- Helper.cs
- HostingPreferredMapPath.cs
- DesignerActionVerbList.cs
- TreeNodeBinding.cs
- FlowPanelDesigner.cs
- CharEnumerator.cs