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
- InstanceData.cs
- ContainerControlDesigner.cs
- HandlerFactoryCache.cs
- ExceptionHandler.cs
- TextLineResult.cs
- RelationshipEnd.cs
- AmbientProperties.cs
- InlineUIContainer.cs
- TogglePattern.cs
- StylusPointDescription.cs
- MergeFilterQuery.cs
- UriTemplateEquivalenceComparer.cs
- WebPartVerbCollection.cs
- ScrollEventArgs.cs
- GroupQuery.cs
- CoreSwitches.cs
- OlePropertyStructs.cs
- VisualProxy.cs
- CustomAttributeFormatException.cs
- BinHexDecoder.cs
- HMACSHA384.cs
- DocumentApplicationJournalEntry.cs
- CodeDelegateCreateExpression.cs
- StorageRoot.cs
- UnsafeNativeMethods.cs
- TextServicesLoader.cs
- HttpCacheVaryByContentEncodings.cs
- SqlSelectStatement.cs
- Switch.cs
- ProcessModelInfo.cs
- OrderingInfo.cs
- CryptoStream.cs
- DependentList.cs
- WebDescriptionAttribute.cs
- DeclarativeCatalogPartDesigner.cs
- NotImplementedException.cs
- SelectionProcessor.cs
- _ConnectOverlappedAsyncResult.cs
- UITypeEditor.cs
- WorkflowIdleBehavior.cs
- DetailsViewCommandEventArgs.cs
- SizeAnimationBase.cs
- _AutoWebProxyScriptEngine.cs
- SingleObjectCollection.cs
- GridPattern.cs
- MasterPageBuildProvider.cs
- TemplateBuilder.cs
- EmbeddedMailObject.cs
- HashRepartitionStream.cs
- SoapProtocolImporter.cs
- GeneralTransform3DGroup.cs
- Matrix3DStack.cs
- ISSmlParser.cs
- ListSourceHelper.cs
- DecoderExceptionFallback.cs
- KnownTypesHelper.cs
- PersonalizationProviderHelper.cs
- _TimerThread.cs
- WebPartEditorCancelVerb.cs
- WindowsTooltip.cs
- WebWorkflowRole.cs
- ProfileProvider.cs
- RelatedView.cs
- OleDbDataReader.cs
- CollectionAdapters.cs
- SqlAggregateChecker.cs
- TemplateColumn.cs
- CustomSignedXml.cs
- TimeSpanConverter.cs
- FormatStringEditor.cs
- Timeline.cs
- OpenTypeLayout.cs
- DefaultBindingPropertyAttribute.cs
- TextHidden.cs
- FieldBuilder.cs
- TextSimpleMarkerProperties.cs
- BlockCollection.cs
- processwaithandle.cs
- recordstatefactory.cs
- FileDialogCustomPlacesCollection.cs
- Publisher.cs
- DeclaredTypeElementCollection.cs
- TextElement.cs
- StylusSystemGestureEventArgs.cs
- SplitterDesigner.cs
- EntityDataSourceContainerNameItem.cs
- DataFormats.cs
- MessageQueueTransaction.cs
- HGlobalSafeHandle.cs
- CustomWebEventKey.cs
- PropertyRecord.cs
- NameObjectCollectionBase.cs
- SmiTypedGetterSetter.cs
- DynamicAttribute.cs
- XmlIterators.cs
- AffineTransform3D.cs
- PrintDialog.cs
- EntityDataSourceViewSchema.cs
- Math.cs
- EntityClientCacheEntry.cs