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
- SecurityPolicySection.cs
- TypefaceMap.cs
- XsdDateTime.cs
- propertytag.cs
- ToolstripProfessionalRenderer.cs
- ListParaClient.cs
- BitmapScalingModeValidation.cs
- FontStyles.cs
- ProfilePropertySettingsCollection.cs
- DefaultMemberAttribute.cs
- DoubleAnimationUsingPath.cs
- ImageFormatConverter.cs
- StdValidatorsAndConverters.cs
- ServicesSection.cs
- PathData.cs
- StoreItemCollection.cs
- SoapCodeExporter.cs
- EdmItemCollection.OcAssemblyCache.cs
- RegexRunner.cs
- OuterGlowBitmapEffect.cs
- XmlSchemaAll.cs
- StrokeIntersection.cs
- EventHandlerList.cs
- TreeNodeBinding.cs
- DataSourceControl.cs
- XamlTypeMapper.cs
- SystemDropShadowChrome.cs
- _SingleItemRequestCache.cs
- EditCommandColumn.cs
- DbModificationCommandTree.cs
- AppDomainProtocolHandler.cs
- PersonalizationStateInfo.cs
- MetadataSerializer.cs
- SqlDelegatedTransaction.cs
- RawStylusInputCustomData.cs
- SecurityException.cs
- SqlWorkflowInstanceStore.cs
- DataRecord.cs
- EncoderBestFitFallback.cs
- SynchronizedInputPattern.cs
- DrawingContextWalker.cs
- CalendarAutomationPeer.cs
- DesignerDataRelationship.cs
- FlowDocument.cs
- Hex.cs
- XamlPointCollectionSerializer.cs
- RequestCacheManager.cs
- ActivityDesignerHelper.cs
- TextEffect.cs
- OdbcConnectionFactory.cs
- UrlMappingsModule.cs
- SafeRegistryHandle.cs
- Mapping.cs
- FixedSOMSemanticBox.cs
- CollectionViewGroupInternal.cs
- SafeFileHandle.cs
- EditorZoneBase.cs
- TypeLibConverter.cs
- UniqueID.cs
- Block.cs
- ToolBarButtonClickEvent.cs
- serverconfig.cs
- AssociationTypeEmitter.cs
- AssertSection.cs
- GridLengthConverter.cs
- GCHandleCookieTable.cs
- ValidationRuleCollection.cs
- TrustVersion.cs
- FixedPosition.cs
- XmlSchemaSimpleTypeUnion.cs
- MetaData.cs
- PropertyToken.cs
- ToolboxBitmapAttribute.cs
- InkCanvasSelectionAdorner.cs
- ParseHttpDate.cs
- ListMarkerLine.cs
- Canvas.cs
- ActiveDesignSurfaceEvent.cs
- GuidTagList.cs
- ContractBase.cs
- Enum.cs
- Bezier.cs
- DllNotFoundException.cs
- BindingsCollection.cs
- SystemDropShadowChrome.cs
- ClientSettings.cs
- CssClassPropertyAttribute.cs
- GridViewRowCollection.cs
- CheckedListBox.cs
- EncodingDataItem.cs
- SHA256.cs
- WebResourceUtil.cs
- FilteredXmlReader.cs
- DBDataPermission.cs
- TimeoutException.cs
- DataDocumentXPathNavigator.cs
- Popup.cs
- QueryOperationResponseOfT.cs
- GridViewColumnHeader.cs
- InfoCardBaseException.cs