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
- CodeNamespaceImportCollection.cs
- Util.cs
- Int32EqualityComparer.cs
- SynchronousReceiveBehavior.cs
- VirtualizedItemProviderWrapper.cs
- CallId.cs
- ConfigurationStrings.cs
- ExpressionVisitor.cs
- ChtmlTextWriter.cs
- StyleCollection.cs
- SelectorAutomationPeer.cs
- ThemeDirectoryCompiler.cs
- DataKey.cs
- ACL.cs
- Int64Animation.cs
- PeerResolverBindingElement.cs
- ReferenceService.cs
- InstanceDescriptor.cs
- Group.cs
- TypeDescriptorFilterService.cs
- SystemNetHelpers.cs
- Lookup.cs
- NotSupportedException.cs
- IdentifierService.cs
- CompoundFileIOPermission.cs
- MetaTableHelper.cs
- SafeRsaProviderHandle.cs
- TypeForwardedToAttribute.cs
- ToolBar.cs
- DesignerInterfaces.cs
- ToolCreatedEventArgs.cs
- SerTrace.cs
- UICuesEvent.cs
- ComponentConverter.cs
- CacheDependency.cs
- ReadOnlyCollection.cs
- ThousandthOfEmRealPoints.cs
- DiagnosticsConfiguration.cs
- ScrollEvent.cs
- WindowsListViewItemCheckBox.cs
- FusionWrap.cs
- BaseAutoFormat.cs
- WebScriptMetadataMessageEncodingBindingElement.cs
- Span.cs
- AppDomainShutdownMonitor.cs
- WebBrowsableAttribute.cs
- VisualTarget.cs
- CodeEventReferenceExpression.cs
- StorageComplexTypeMapping.cs
- HttpVersion.cs
- ProfilePropertyMetadata.cs
- StorageMappingItemCollection.cs
- PersonalizableTypeEntry.cs
- VirtualPathProvider.cs
- NetworkAddressChange.cs
- XmlAutoDetectWriter.cs
- HandledEventArgs.cs
- HostedTransportConfigurationManager.cs
- AuthenticationConfig.cs
- NetMsmqBinding.cs
- FtpWebRequest.cs
- CuspData.cs
- UrlAuthFailedErrorFormatter.cs
- Utils.cs
- OletxCommittableTransaction.cs
- _NetRes.cs
- BinHexEncoding.cs
- XmlSchemaSet.cs
- assemblycache.cs
- SQlBooleanStorage.cs
- Rect3D.cs
- UpDownBase.cs
- PagedDataSource.cs
- SupportsEventValidationAttribute.cs
- KeySpline.cs
- LoginView.cs
- QueryOperator.cs
- EntityDataSourceChangedEventArgs.cs
- TableProvider.cs
- CodeDomSerializer.cs
- ObjectSelectorEditor.cs
- Lease.cs
- CalendarDataBindingHandler.cs
- StreamReader.cs
- StreamGeometry.cs
- SessionParameter.cs
- GACMembershipCondition.cs
- ClientType.cs
- XmlSchemaDocumentation.cs
- PopupRoot.cs
- RolePrincipal.cs
- X509Extension.cs
- SecurityDocument.cs
- WebConvert.cs
- CodeAttachEventStatement.cs
- XmlTypeMapping.cs
- NodeInfo.cs
- RegexInterpreter.cs
- ConnectionPoint.cs
- WebBrowserProgressChangedEventHandler.cs