Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RepeaterCommandEventArgs.cs
- SmtpFailedRecipientException.cs
- WebSysDisplayNameAttribute.cs
- DocumentViewerBase.cs
- EditorPartChrome.cs
- ActiveXHelper.cs
- TransactionManager.cs
- HideDisabledControlAdapter.cs
- RangeValuePatternIdentifiers.cs
- BadImageFormatException.cs
- ObjectTokenCategory.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- FlowDocumentPaginator.cs
- MULTI_QI.cs
- PackWebRequestFactory.cs
- HttpListenerElement.cs
- StringFreezingAttribute.cs
- ClientRuntimeConfig.cs
- PreProcessor.cs
- SortQuery.cs
- DeploymentExceptionMapper.cs
- InProcStateClientManager.cs
- SizeFConverter.cs
- DesignColumn.cs
- DbConnectionStringBuilder.cs
- HttpCapabilitiesBase.cs
- Literal.cs
- BypassElementCollection.cs
- SecureUICommand.cs
- ApplicationInterop.cs
- ReflectEventDescriptor.cs
- SerializationEventsCache.cs
- ApplicationSettingsBase.cs
- System.Data_BID.cs
- CodeVariableDeclarationStatement.cs
- Stroke.cs
- DoubleAnimationBase.cs
- dsa.cs
- RegexBoyerMoore.cs
- PersianCalendar.cs
- CompositionAdorner.cs
- X500Name.cs
- ContainerFilterService.cs
- ReadOnlyDataSourceView.cs
- XmlChoiceIdentifierAttribute.cs
- StreamAsIStream.cs
- WebPartConnectionsConfigureVerb.cs
- TracePayload.cs
- SiteMapDataSource.cs
- BamlTreeMap.cs
- RubberbandSelector.cs
- BuiltInExpr.cs
- UnconditionalPolicy.cs
- Enlistment.cs
- GPPOINT.cs
- ImportStoreException.cs
- Context.cs
- FileSystemInfo.cs
- SmiContext.cs
- RangeContentEnumerator.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- StrongNameKeyPair.cs
- QilFactory.cs
- DBParameter.cs
- InkCanvasSelectionAdorner.cs
- XmlSchemaComplexContent.cs
- EraserBehavior.cs
- EntityDesignerUtils.cs
- ElapsedEventArgs.cs
- MatchAttribute.cs
- PanelStyle.cs
- LineSegment.cs
- RepeatBehaviorConverter.cs
- ipaddressinformationcollection.cs
- SliderAutomationPeer.cs
- ReadOnlyDataSourceView.cs
- HtmlInputText.cs
- SerializerDescriptor.cs
- MenuItem.cs
- DataGridViewButtonColumn.cs
- ChangeNode.cs
- PropertyAccessVisitor.cs
- Events.cs
- ReturnEventArgs.cs
- ChildrenQuery.cs
- FontFaceLayoutInfo.cs
- ObfuscationAttribute.cs
- MessageBox.cs
- Error.cs
- URLIdentityPermission.cs
- DetailsViewDeletedEventArgs.cs
- AuthorizationRuleCollection.cs
- GridViewUpdatedEventArgs.cs
- JsonReader.cs
- BitmapScalingModeValidation.cs
- TemplateXamlParser.cs
- BufferAllocator.cs
- MimeXmlReflector.cs
- TextSelectionHelper.cs
- DataGridLength.cs