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
- RayMeshGeometry3DHitTestResult.cs
- StringExpressionSet.cs
- MediaContextNotificationWindow.cs
- ClientConfigurationHost.cs
- ISAPIRuntime.cs
- SecurityTokenContainer.cs
- ColorKeyFrameCollection.cs
- RichTextBoxAutomationPeer.cs
- BindingList.cs
- EntityContainerEmitter.cs
- SamlSubject.cs
- InvalidPropValue.cs
- WindowsListView.cs
- EdmProperty.cs
- SafeFindHandle.cs
- SignatureDescription.cs
- DataBoundControl.cs
- _HelperAsyncResults.cs
- DiscardableAttribute.cs
- AdornedElementPlaceholder.cs
- IsolatedStoragePermission.cs
- DataGridCellItemAutomationPeer.cs
- HtmlTable.cs
- SettingsAttributeDictionary.cs
- DbConnectionPoolCounters.cs
- HttpPostedFileBase.cs
- XamlGridLengthSerializer.cs
- PatternMatchRules.cs
- SpAudioStreamWrapper.cs
- Deserializer.cs
- XamlReaderHelper.cs
- MemberDescriptor.cs
- XmlParserContext.cs
- SqlClientWrapperSmiStreamChars.cs
- FactoryRecord.cs
- TypeKeyValue.cs
- WebSysDisplayNameAttribute.cs
- XmlKeywords.cs
- VBCodeProvider.cs
- TakeQueryOptionExpression.cs
- CustomAttributeFormatException.cs
- AnimatedTypeHelpers.cs
- DBConnection.cs
- InfiniteTimeSpanConverter.cs
- AutoCompleteStringCollection.cs
- HeaderCollection.cs
- FlowLayout.cs
- TransformConverter.cs
- WizardSideBarListControlItem.cs
- TypeGeneratedEventArgs.cs
- Span.cs
- cookiecollection.cs
- QilUnary.cs
- LambdaCompiler.Expressions.cs
- ContextMenuService.cs
- RadioButtonRenderer.cs
- Point3DCollection.cs
- SharedStatics.cs
- ExceptionRoutedEventArgs.cs
- BaseCollection.cs
- BuilderPropertyEntry.cs
- NotCondition.cs
- SystemIPv4InterfaceProperties.cs
- MenuItemAutomationPeer.cs
- BoundsDrawingContextWalker.cs
- OutputCacheSettings.cs
- DictionaryGlobals.cs
- SafeArrayTypeMismatchException.cs
- CopyOnWriteList.cs
- RegexCompiler.cs
- XmlSchemaSimpleContentExtension.cs
- DynamicResourceExtension.cs
- ProfilePropertySettingsCollection.cs
- SqlReferenceCollection.cs
- XmlBinaryReader.cs
- QueryResponse.cs
- LogConverter.cs
- ConfigurationValue.cs
- Model3DCollection.cs
- BezierSegment.cs
- FormViewDeleteEventArgs.cs
- CalendarDataBindingHandler.cs
- WindowsRichEditRange.cs
- ResourceManagerWrapper.cs
- ThreadSafeList.cs
- StyleCollectionEditor.cs
- RoleGroupCollection.cs
- ScrollProviderWrapper.cs
- WindowsClaimSet.cs
- WasEndpointConfigContainer.cs
- FileDialog_Vista_Interop.cs
- SqlProvider.cs
- HtmlLiteralTextAdapter.cs
- AddingNewEventArgs.cs
- OleDbException.cs
- AutomationEventArgs.cs
- JulianCalendar.cs
- GroupItem.cs
- ColorKeyFrameCollection.cs
- WaitHandle.cs