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
- KeyNotFoundException.cs
- PagerSettings.cs
- BinaryParser.cs
- RadioButtonPopupAdapter.cs
- ProviderCommandInfoUtils.cs
- CrossSiteScriptingValidation.cs
- ConsoleTraceListener.cs
- SqlPersonalizationProvider.cs
- RuleSettingsCollection.cs
- Queue.cs
- LineSegment.cs
- DisplayInformation.cs
- WaitHandleCannotBeOpenedException.cs
- XmlMembersMapping.cs
- ErrorFormatter.cs
- TraversalRequest.cs
- SecUtil.cs
- ProcessThreadCollection.cs
- Matrix3DValueSerializer.cs
- Point.cs
- IgnoreDeviceFilterElement.cs
- ColorAnimationUsingKeyFrames.cs
- LinkClickEvent.cs
- WhiteSpaceTrimStringConverter.cs
- FunctionDetailsReader.cs
- MaskPropertyEditor.cs
- ProviderUtil.cs
- XPathNodeHelper.cs
- DataGridViewCheckBoxCell.cs
- StringExpressionSet.cs
- ExpressionNode.cs
- DataGridViewCellStyleEditor.cs
- TriggerCollection.cs
- SystemWebExtensionsSectionGroup.cs
- FlowDocumentPaginator.cs
- Win32Native.cs
- HttpListenerRequest.cs
- DataKeyArray.cs
- XmlSchemaSimpleContentExtension.cs
- GridViewHeaderRowPresenter.cs
- EditorPart.cs
- GeneralTransform.cs
- MimeTypeMapper.cs
- HttpListenerContext.cs
- CodeMemberMethod.cs
- Pair.cs
- PreviewPageInfo.cs
- DocumentEventArgs.cs
- EditingScope.cs
- Rotation3DKeyFrameCollection.cs
- ExpressionUtilities.cs
- XD.cs
- Selection.cs
- ConfigXmlWhitespace.cs
- RemotingServices.cs
- ClientSession.cs
- mediaeventshelper.cs
- XmlSecureResolver.cs
- TextElementAutomationPeer.cs
- BuildProviderAppliesToAttribute.cs
- SimpleWorkerRequest.cs
- ComponentCommands.cs
- ClaimTypeRequirement.cs
- FakeModelItemImpl.cs
- ParserHooks.cs
- FilteredDataSetHelper.cs
- ThicknessAnimation.cs
- TextUtf8RawTextWriter.cs
- Cursors.cs
- AuthenticationService.cs
- DataBindingHandlerAttribute.cs
- TransformDescriptor.cs
- SQLUtility.cs
- DataSourceSelectArguments.cs
- CodeIdentifiers.cs
- AuthenticationModuleElementCollection.cs
- CoreSwitches.cs
- TypeSemantics.cs
- ManagementObject.cs
- GridViewRowEventArgs.cs
- OleStrCAMarshaler.cs
- SetStoryboardSpeedRatio.cs
- PageWrapper.cs
- Roles.cs
- Label.cs
- LocalizableResourceBuilder.cs
- CodeRegionDirective.cs
- COM2ExtendedUITypeEditor.cs
- XmlHierarchyData.cs
- ClientUriBehavior.cs
- WebEventTraceProvider.cs
- ImageAnimator.cs
- BaseParser.cs
- CqlWriter.cs
- Win32SafeHandles.cs
- MDIWindowDialog.cs
- IdentitySection.cs
- GenerateTemporaryTargetAssembly.cs
- TraceSection.cs
- WindowInteractionStateTracker.cs