Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / 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. 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
- DoubleLinkListEnumerator.cs
- UrlMappingCollection.cs
- ResourceExpression.cs
- MethodCallTranslator.cs
- HMACSHA384.cs
- FormView.cs
- ListBindingConverter.cs
- SqlDataSourceCache.cs
- StaticSiteMapProvider.cs
- GridViewSelectEventArgs.cs
- DataRelation.cs
- HelpEvent.cs
- ApplicationServiceManager.cs
- HtmlLink.cs
- InvalidateEvent.cs
- HwndKeyboardInputProvider.cs
- CookieParameter.cs
- WebPartConnectionsEventArgs.cs
- SimplePropertyEntry.cs
- TextServicesCompartment.cs
- XmlSchema.cs
- HTTPNotFoundHandler.cs
- InvalidDataException.cs
- PageSetupDialog.cs
- SqlMetaData.cs
- WinInetCache.cs
- WebConfigurationHostFileChange.cs
- ToolboxItemAttribute.cs
- SystemMulticastIPAddressInformation.cs
- HeaderUtility.cs
- DataTableMapping.cs
- Debugger.cs
- Vector3DCollectionConverter.cs
- XmlDsigSep2000.cs
- StringAnimationBase.cs
- DocumentPage.cs
- ItemCheckEvent.cs
- RelationshipDetailsCollection.cs
- ToolStripHighContrastRenderer.cs
- SqlDataAdapter.cs
- WebServiceData.cs
- ListControl.cs
- configsystem.cs
- CustomAttribute.cs
- CodeMethodInvokeExpression.cs
- MethodCallTranslator.cs
- FormatterServices.cs
- _BufferOffsetSize.cs
- ServicesUtilities.cs
- PropertyCondition.cs
- FusionWrap.cs
- Material.cs
- HttpCookiesSection.cs
- SqlConnectionManager.cs
- SettingsPropertyNotFoundException.cs
- PackagePartCollection.cs
- HtmlEncodedRawTextWriter.cs
- PrintPreviewDialog.cs
- FrameworkContextData.cs
- Stylus.cs
- DataSourceHelper.cs
- ByteRangeDownloader.cs
- SspiSecurityTokenParameters.cs
- HwndSourceKeyboardInputSite.cs
- BasicBrowserDialog.cs
- UrlAuthFailedErrorFormatter.cs
- TrackingMemoryStream.cs
- SmtpReplyReader.cs
- WindowsMenu.cs
- FillErrorEventArgs.cs
- SrgsElement.cs
- ExceptionUtil.cs
- SiteMapHierarchicalDataSourceView.cs
- XsdDateTime.cs
- SystemWebExtensionsSectionGroup.cs
- CodeTypeDeclarationCollection.cs
- TypeContext.cs
- DataGridRowHeader.cs
- Bitmap.cs
- PrintDialog.cs
- BaseTemplateBuildProvider.cs
- _NegoStream.cs
- MemberAccessException.cs
- DeclarativeCatalogPartDesigner.cs
- CharacterShapingProperties.cs
- Authorization.cs
- CodeNamespace.cs
- MessageFilter.cs
- DbResourceAllocator.cs
- NavigationPropertyEmitter.cs
- GenericUriParser.cs
- AnimationTimeline.cs
- BevelBitmapEffect.cs
- PointCollectionValueSerializer.cs
- EntityEntry.cs
- VariableQuery.cs
- PrintPreviewDialog.cs
- StickyNoteHelper.cs
- PropertyGroupDescription.cs
- Stack.cs