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
- MemberExpressionHelper.cs
- EntityDataSourceDesigner.cs
- GraphicsContainer.cs
- EventProviderWriter.cs
- CompatibleIComparer.cs
- TextTreeTextBlock.cs
- AvtEvent.cs
- EasingQuaternionKeyFrame.cs
- XmlNode.cs
- DocumentCollection.cs
- EncodingInfo.cs
- GenericUI.cs
- Environment.cs
- UxThemeWrapper.cs
- XmlFormatExtensionPointAttribute.cs
- TextEndOfParagraph.cs
- Point3DAnimationBase.cs
- ScrollBar.cs
- GeneralTransformGroup.cs
- DataServiceStreamProviderWrapper.cs
- InternalConfigSettingsFactory.cs
- DataControlFieldHeaderCell.cs
- basenumberconverter.cs
- ProcessHost.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- MenuItemBinding.cs
- counter.cs
- FileStream.cs
- DrawToolTipEventArgs.cs
- SoapAttributes.cs
- TypeSource.cs
- X509Utils.cs
- RouteData.cs
- WebPartZone.cs
- TreeNodeEventArgs.cs
- IsolatedStorageFileStream.cs
- XmlEncoding.cs
- PasswordTextNavigator.cs
- BindingEntityInfo.cs
- RequestCachePolicy.cs
- NegotiateStream.cs
- DeploymentSection.cs
- GridViewSortEventArgs.cs
- XmlIlTypeHelper.cs
- LocalFileSettingsProvider.cs
- StorageFunctionMapping.cs
- ArraySet.cs
- HtmlInputControl.cs
- DataGridViewDataConnection.cs
- TransformConverter.cs
- SqlPersonalizationProvider.cs
- EndPoint.cs
- FileDialogCustomPlace.cs
- CodeTypeConstructor.cs
- NameTable.cs
- View.cs
- BrowsableAttribute.cs
- ConfigurationErrorsException.cs
- FilteredXmlReader.cs
- ConnectionProviderAttribute.cs
- nulltextnavigator.cs
- TokenBasedSetEnumerator.cs
- CollectionBase.cs
- BindableTemplateBuilder.cs
- DataGridViewSelectedColumnCollection.cs
- EditorPartCollection.cs
- SqlProcedureAttribute.cs
- TextSpanModifier.cs
- XmlSchemaSimpleTypeList.cs
- Polygon.cs
- NullReferenceException.cs
- BuildResult.cs
- DataControlPagerLinkButton.cs
- SecurityDescriptor.cs
- SqlProfileProvider.cs
- BaseCollection.cs
- GorillaCodec.cs
- ArrangedElement.cs
- Size3D.cs
- StrongNameUtility.cs
- CompilationUtil.cs
- SingleQueryOperator.cs
- CheckedListBox.cs
- __FastResourceComparer.cs
- RegistrationServices.cs
- UIPermission.cs
- DataGridViewCellMouseEventArgs.cs
- Double.cs
- HttpModuleAction.cs
- WebPageTraceListener.cs
- IsolationInterop.cs
- SecureUICommand.cs
- ImageListStreamer.cs
- MessageSmuggler.cs
- HttpCacheVary.cs
- DrawingState.cs
- SoapSchemaExporter.cs
- TrackingProfileSerializer.cs
- AxHost.cs
- DataGridViewAdvancedBorderStyle.cs