Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- RangeValidator.cs
- Point.cs
- SimpleHandlerFactory.cs
- SqlNotificationEventArgs.cs
- OleDbEnumerator.cs
- RectangleConverter.cs
- NameSpaceEvent.cs
- CatalogPartDesigner.cs
- Parameter.cs
- DataSourceView.cs
- LineServices.cs
- TrackingProfileSerializer.cs
- TextSegment.cs
- ZoneLinkButton.cs
- Span.cs
- CurrencyWrapper.cs
- OdbcException.cs
- HwndStylusInputProvider.cs
- DocumentXPathNavigator.cs
- HealthMonitoringSection.cs
- ListBindableAttribute.cs
- MessageFault.cs
- UniqueEventHelper.cs
- CancellationHandlerDesigner.cs
- ColumnMapCopier.cs
- TextEditorMouse.cs
- OverrideMode.cs
- RuleValidation.cs
- UnmanagedMemoryStream.cs
- DocumentStatusResources.cs
- LockedBorderGlyph.cs
- TransformProviderWrapper.cs
- LinearGradientBrush.cs
- Emitter.cs
- WriteLineDesigner.xaml.cs
- Simplifier.cs
- ScriptIgnoreAttribute.cs
- LineBreak.cs
- DeviceSpecific.cs
- SqlBinder.cs
- DataGridViewAccessibleObject.cs
- TypeConverterHelper.cs
- ParserExtension.cs
- ViewCellRelation.cs
- DbParameterHelper.cs
- CodeDomComponentSerializationService.cs
- EdmProviderManifest.cs
- ZipIOCentralDirectoryFileHeader.cs
- PKCS1MaskGenerationMethod.cs
- SecurityCriticalDataForSet.cs
- EntityProviderServices.cs
- Rijndael.cs
- RegexInterpreter.cs
- EastAsianLunisolarCalendar.cs
- TreeSet.cs
- PagePropertiesChangingEventArgs.cs
- XmlSchemaType.cs
- PkcsUtils.cs
- Boolean.cs
- SqlCommandBuilder.cs
- CustomErrorsSectionWrapper.cs
- Parsers.cs
- MatrixTransform3D.cs
- NumberAction.cs
- SupportsPreviewControlAttribute.cs
- MetafileHeaderWmf.cs
- CategoryAttribute.cs
- SamlEvidence.cs
- Event.cs
- ControlParameter.cs
- BaseTemplateBuildProvider.cs
- CatchDesigner.xaml.cs
- RSAOAEPKeyExchangeFormatter.cs
- AnimatedTypeHelpers.cs
- ImagingCache.cs
- ReadOnlyMetadataCollection.cs
- ValueChangedEventManager.cs
- BitmapEffectDrawingContextWalker.cs
- MaskedTextBoxDesigner.cs
- StagingAreaInputItem.cs
- MappingModelBuildProvider.cs
- ExpressionVisitorHelpers.cs
- Knowncolors.cs
- ElementNotAvailableException.cs
- PersonalizationDictionary.cs
- GlyphRunDrawing.cs
- RepeatBehaviorConverter.cs
- TextClipboardData.cs
- AccessorTable.cs
- DataObjectAttribute.cs
- Pen.cs
- RequestNavigateEventArgs.cs
- XmlValidatingReaderImpl.cs
- ConfigurationLockCollection.cs
- RuleRefElement.cs
- remotingproxy.cs
- DependencyPropertyDescriptor.cs
- AcceleratedTokenAuthenticator.cs
- DispatcherProcessingDisabled.cs
- ScrollPattern.cs