Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- Parameter.cs
- HierarchicalDataBoundControl.cs
- IndexingContentUnit.cs
- EncryptedData.cs
- SerializationUtilities.cs
- StyleXamlParser.cs
- ComponentDispatcher.cs
- FileSystemWatcher.cs
- DetailsViewUpdateEventArgs.cs
- ScrollViewer.cs
- WorkflowEventArgs.cs
- ConfigXmlAttribute.cs
- DependencyPropertyHelper.cs
- CircleHotSpot.cs
- EmptyImpersonationContext.cs
- TrackingProfileSerializer.cs
- QueryServiceConfigHandle.cs
- FileClassifier.cs
- Button.cs
- TrackingMemoryStream.cs
- BitmapEffectCollection.cs
- LassoHelper.cs
- MethodBuilderInstantiation.cs
- XmlSchemaChoice.cs
- ListViewItemMouseHoverEvent.cs
- WindowsScroll.cs
- CursorConverter.cs
- EncoderParameter.cs
- SafeNativeMethods.cs
- ControlPaint.cs
- TextureBrush.cs
- StyleTypedPropertyAttribute.cs
- ListViewContainer.cs
- ItemContainerGenerator.cs
- HotSpotCollectionEditor.cs
- ReflectionPermission.cs
- LoadItemsEventArgs.cs
- WebProxyScriptElement.cs
- JournalEntryStack.cs
- DataGridViewCellLinkedList.cs
- WsatAdminException.cs
- SapiAttributeParser.cs
- Serializer.cs
- DbConnectionPoolIdentity.cs
- SinglePhaseEnlistment.cs
- SerializationFieldInfo.cs
- BitmapEffect.cs
- EntitySetDataBindingList.cs
- InkCanvasAutomationPeer.cs
- UntypedNullExpression.cs
- GetBrowserTokenRequest.cs
- SqlDeflator.cs
- HttpClientChannel.cs
- DispatchChannelSink.cs
- InternalDispatchObject.cs
- validationstate.cs
- ErasingStroke.cs
- FieldNameLookup.cs
- ProfilePropertySettings.cs
- UnauthorizedWebPart.cs
- DesignerCategoryAttribute.cs
- HeaderUtility.cs
- DrawingContextDrawingContextWalker.cs
- XamlStream.cs
- ListParaClient.cs
- NotCondition.cs
- WorkflowInstance.cs
- ReadOnlyNameValueCollection.cs
- PrimitiveCodeDomSerializer.cs
- XsltFunctions.cs
- Form.cs
- SiblingIterators.cs
- ProviderConnectionPoint.cs
- ResolveNameEventArgs.cs
- GradientStop.cs
- XmlSchemaInfo.cs
- StringValidatorAttribute.cs
- IndentedWriter.cs
- WhitespaceRule.cs
- EdmTypeAttribute.cs
- PropertyPath.cs
- ProgressBarBrushConverter.cs
- OdbcFactory.cs
- IgnoreFlushAndCloseStream.cs
- SystemNetworkInterface.cs
- UnsafeNativeMethodsTablet.cs
- DataProtection.cs
- DetailsViewPageEventArgs.cs
- RecordConverter.cs
- Comparer.cs
- ProjectionNode.cs
- TextDecorationCollection.cs
- SQLDecimal.cs
- PrintPreviewControl.cs
- MarkupCompilePass2.cs
- CheckBoxList.cs
- ReadWriteObjectLock.cs
- SqlNotificationEventArgs.cs
- _UriSyntax.cs
- MethodRental.cs