Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- Paragraph.cs
- CodeTypeParameter.cs
- TypeUsage.cs
- AddressingProperty.cs
- BindingSource.cs
- ChildrenQuery.cs
- ProtectedConfiguration.cs
- Point3DAnimationBase.cs
- ScriptDescriptor.cs
- xmlformatgeneratorstatics.cs
- ReadOnlyHierarchicalDataSourceView.cs
- behaviorssection.cs
- BuildManagerHost.cs
- XpsResourceDictionary.cs
- HandlerFactoryCache.cs
- SqlDataSourceSelectingEventArgs.cs
- Int16AnimationBase.cs
- SqlDataSource.cs
- TdsRecordBufferSetter.cs
- RangeValueProviderWrapper.cs
- HttpContext.cs
- DrawingImage.cs
- UrlPath.cs
- XmlBinaryReader.cs
- TableSectionStyle.cs
- LocalizabilityAttribute.cs
- NativeRecognizer.cs
- Metadata.cs
- ClientSettingsSection.cs
- CommonProperties.cs
- CornerRadius.cs
- DataGridViewCellConverter.cs
- StreamReader.cs
- EventSinkHelperWriter.cs
- TextBoxView.cs
- XsltSettings.cs
- ProviderCollection.cs
- XamlSerializerUtil.cs
- ButtonBaseAdapter.cs
- MappingModelBuildProvider.cs
- MissingSatelliteAssemblyException.cs
- ConstraintManager.cs
- QuaternionAnimation.cs
- ThicknessAnimation.cs
- StaticTextPointer.cs
- SettingsPropertyWrongTypeException.cs
- DesigntimeLicenseContextSerializer.cs
- IPEndPointCollection.cs
- XmlAtomicValue.cs
- TypeDescriptionProvider.cs
- ThemeInfoAttribute.cs
- CreateUserWizardDesigner.cs
- keycontainerpermission.cs
- Inflater.cs
- Dynamic.cs
- Control.cs
- TriggerActionCollection.cs
- EventBindingService.cs
- ResourceIDHelper.cs
- PlacementWorkspace.cs
- PrePostDescendentsWalker.cs
- IgnoreFileBuildProvider.cs
- XmlBufferReader.cs
- DocumentViewer.cs
- Polygon.cs
- UIElementHelper.cs
- Rotation3DKeyFrameCollection.cs
- CompatibleComparer.cs
- DBCommand.cs
- MetadataUtilsSmi.cs
- DocumentGridPage.cs
- SystemIcmpV4Statistics.cs
- TextOnlyOutput.cs
- NotFiniteNumberException.cs
- ParallelActivityDesigner.cs
- XmlSerializationGeneratedCode.cs
- SafePEFileHandle.cs
- RevocationPoint.cs
- GregorianCalendar.cs
- EncryptedHeaderXml.cs
- XmlNamedNodeMap.cs
- AttributeQuery.cs
- GeneratedCodeAttribute.cs
- SHA384Managed.cs
- _Rfc2616CacheValidators.cs
- Config.cs
- CodeValidator.cs
- FileDialog_Vista_Interop.cs
- DataGridViewColumnDesigner.cs
- OdbcParameterCollection.cs
- TableItemPatternIdentifiers.cs
- StreamGeometryContext.cs
- QuaternionRotation3D.cs
- AncestorChangedEventArgs.cs
- SctClaimSerializer.cs
- PropertyChangedEventArgs.cs
- Style.cs
- BuildManagerHost.cs
- KnownBoxes.cs
- VerticalAlignConverter.cs