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
- NullableLongMinMaxAggregationOperator.cs
- HTTPRemotingHandler.cs
- Nodes.cs
- FrameworkEventSource.cs
- SessionStateModule.cs
- DefaultDialogButtons.cs
- DataGridAddNewRow.cs
- AnnotationAuthorChangedEventArgs.cs
- parserscommon.cs
- Random.cs
- DataPointer.cs
- CompositionDesigner.cs
- SafeTokenHandle.cs
- RectAnimation.cs
- CompilerTypeWithParams.cs
- mediaeventshelper.cs
- DeclarationUpdate.cs
- Calendar.cs
- NameValuePermission.cs
- ObjectListCommandCollection.cs
- ConfigurationValue.cs
- BindingExpressionUncommonField.cs
- ModuleBuilder.cs
- DbProviderFactories.cs
- XmlNamespaceDeclarationsAttribute.cs
- ManualResetEvent.cs
- XpsS0ValidatingLoader.cs
- recordstatescratchpad.cs
- Vector3DCollectionConverter.cs
- VerticalAlignConverter.cs
- PropertyValueUIItem.cs
- ContainerFilterService.cs
- AsnEncodedData.cs
- LicenseManager.cs
- ImpersonateTokenRef.cs
- DecimalAverageAggregationOperator.cs
- RestHandlerFactory.cs
- UserControlParser.cs
- RangeValueProviderWrapper.cs
- TypeLibraryHelper.cs
- UrlMappingCollection.cs
- InstanceNormalEvent.cs
- HttpApplicationFactory.cs
- GridViewEditEventArgs.cs
- ClientSettingsStore.cs
- HtmlControlAdapter.cs
- SqlDuplicator.cs
- FormatterServicesNoSerializableCheck.cs
- ShaderEffect.cs
- ReaderOutput.cs
- sqlnorm.cs
- TabItem.cs
- TextParagraphView.cs
- _IPv4Address.cs
- CriticalHandle.cs
- SourceItem.cs
- Separator.cs
- SizeLimitedCache.cs
- NavigationProperty.cs
- ClientSettingsStore.cs
- BindingSource.cs
- PersistChildrenAttribute.cs
- FixedHighlight.cs
- ContextDataSource.cs
- NameValueFileSectionHandler.cs
- UseManagedPresentationBindingElementImporter.cs
- BrowserInteropHelper.cs
- SQLMoney.cs
- X509ChainElement.cs
- PointCollectionConverter.cs
- NamedServiceModelExtensionCollectionElement.cs
- basevalidator.cs
- SqlUdtInfo.cs
- COMException.cs
- BindingCompleteEventArgs.cs
- XmlResolver.cs
- ParserHooks.cs
- ElementAction.cs
- WebFormsRootDesigner.cs
- XmlQueryStaticData.cs
- ContentDisposition.cs
- precedingsibling.cs
- XpsFilter.cs
- TreeBuilder.cs
- SrgsRulesCollection.cs
- StrongNameKeyPair.cs
- BehaviorEditorPart.cs
- WebServiceHostFactory.cs
- NullableDoubleAverageAggregationOperator.cs
- RowTypeElement.cs
- SmiTypedGetterSetter.cs
- IdnElement.cs
- DataGridRow.cs
- Misc.cs
- ExceptionTrace.cs
- TranslateTransform.cs
- XmlImplementation.cs
- Quaternion.cs
- WebPartDisplayMode.cs
- CodeDomSerializationProvider.cs