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
- ReferenceService.cs
- ImageMapEventArgs.cs
- Polyline.cs
- AdapterSwitches.cs
- CommonObjectSecurity.cs
- TypeConstant.cs
- CompiledIdentityConstraint.cs
- ArgumentValueSerializer.cs
- DataObjectSettingDataEventArgs.cs
- EntityDataSourceViewSchema.cs
- SizeFConverter.cs
- Baml6Assembly.cs
- IDispatchConstantAttribute.cs
- XslAst.cs
- PropertyTab.cs
- DBParameter.cs
- AuthorizationRule.cs
- BamlLocalizationDictionary.cs
- FilterException.cs
- PreviewPrintController.cs
- StylusPoint.cs
- TransformProviderWrapper.cs
- CategoryGridEntry.cs
- SqlNodeAnnotations.cs
- ObjectDataSourceView.cs
- ArraySortHelper.cs
- WebPartConnectionsConnectVerb.cs
- SqlDataSourceQueryEditor.cs
- WizardSideBarListControlItem.cs
- GetIndexBinder.cs
- SafeFileMapViewHandle.cs
- DateTimeFormat.cs
- NullableFloatAverageAggregationOperator.cs
- FeedUtils.cs
- MergeExecutor.cs
- CharUnicodeInfo.cs
- NavigatorOutput.cs
- VisualTarget.cs
- CoreSwitches.cs
- DictionaryChange.cs
- ChtmlLinkAdapter.cs
- AutomationEventArgs.cs
- BeginStoryboard.cs
- MimeFormReflector.cs
- ControlBindingsCollection.cs
- SiteMapHierarchicalDataSourceView.cs
- Codec.cs
- TableLayoutStyle.cs
- QueryGeneratorBase.cs
- TypeDescriptor.cs
- ProjectionCamera.cs
- MaskedTextBoxDesignerActionList.cs
- lengthconverter.cs
- RelatedView.cs
- SafeNativeMethods.cs
- SqlVisitor.cs
- InputScope.cs
- SafeNativeMethodsOther.cs
- TextEvent.cs
- indexingfiltermarshaler.cs
- TableLayoutCellPaintEventArgs.cs
- XmlImplementation.cs
- TreeView.cs
- ParserOptions.cs
- IISMapPath.cs
- XmlDictionaryReader.cs
- _WinHttpWebProxyDataBuilder.cs
- AssemblyBuilder.cs
- Assembly.cs
- ObjectDataSource.cs
- ZoneMembershipCondition.cs
- BlurBitmapEffect.cs
- _SSPIWrapper.cs
- CustomActivityDesigner.cs
- ColorEditor.cs
- Panel.cs
- FileDialogCustomPlacesCollection.cs
- XmlBinaryWriter.cs
- OdbcError.cs
- MessageQueuePermission.cs
- OperationAbortedException.cs
- XmlDownloadManager.cs
- SigningCredentials.cs
- ObjectCloneHelper.cs
- VisualTreeUtils.cs
- TaskHelper.cs
- ConnectionOrientedTransportChannelFactory.cs
- DataGridViewBindingCompleteEventArgs.cs
- SqlUDTStorage.cs
- MoveSizeWinEventHandler.cs
- SafeTokenHandle.cs
- SchemaTypeEmitter.cs
- DataGridHelper.cs
- OleDbPermission.cs
- DbUpdateCommandTree.cs
- AsymmetricKeyExchangeFormatter.cs
- DispatchWrapper.cs
- Emitter.cs
- XmlEncodedRawTextWriter.cs
- EventHandlerService.cs