Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Input / Win32MouseDevice.cs / 1 / Win32MouseDevice.cs
using System.Diagnostics; using System.Collections; using System.Windows; using System.Windows.Media; using System.Windows.Interop; using System.Windows.Threading; using System.Security; using System.Security.Permissions; using MS.Internal; using MS.Internal.PresentationCore; // SecurityHelper using MS.Win32; // *NativeMethods using System.Runtime.InteropServices; using System; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Input { ////// The Win32MouseDevice class implements the platform specific /// MouseDevice features for the Win32 platform /// internal sealed class Win32MouseDevice : MouseDevice { ////// /// /// /// ////// Critical - This is code that elevates AND creates the mouse device which /// happens to hold the callback to filter mouse messages /// TreatAsSafe: This constructor handles critical data but does not expose it /// It stores instance but there are demands on the instances. /// [SecurityCritical,SecurityTreatAsSafe] internal Win32MouseDevice(InputManager inputManager) : base(inputManager) { } ////// Gets the current state of the specified button from the device from the underlying system /// /// /// The mouse button to get the state of /// ////// The state of the specified mouse button /// ////// Critical: Makes calls to UnsafeNativeMethods (GetKeyState) /// TreatAsSafe: Only returns the current state of the specified button /// [SecurityCritical,SecurityTreatAsSafe] internal override MouseButtonState GetButtonStateFromSystem(MouseButton mouseButton) { MouseButtonState mouseButtonState = MouseButtonState.Released; // Security Mitigation: do not give out input state if the device is not active. if(IsActive) { int virtualKeyCode = 0; switch( mouseButton ) { case MouseButton.Left: virtualKeyCode = NativeMethods.VK_LBUTTON; break; case MouseButton.Right: virtualKeyCode = NativeMethods.VK_RBUTTON; break; case MouseButton.Middle: virtualKeyCode = NativeMethods.VK_MBUTTON; break; case MouseButton.XButton1: virtualKeyCode = NativeMethods.VK_XBUTTON1; break; case MouseButton.XButton2: virtualKeyCode = NativeMethods.VK_XBUTTON2; break; } mouseButtonState = ( UnsafeNativeMethods.GetKeyState(virtualKeyCode) & 0x8000 ) != 0 ? MouseButtonState.Pressed : MouseButtonState.Released; } return mouseButtonState; } } } // 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
- KoreanLunisolarCalendar.cs
- xsdvalidator.cs
- ToolboxItemFilterAttribute.cs
- FixUp.cs
- DataGridViewHitTestInfo.cs
- WebSysDisplayNameAttribute.cs
- SqlClientWrapperSmiStreamChars.cs
- ServiceOperationWrapper.cs
- PolicyUnit.cs
- BaseParagraph.cs
- BaseTransportHeaders.cs
- RawTextInputReport.cs
- ScriptingProfileServiceSection.cs
- ThrowHelper.cs
- BackgroundFormatInfo.cs
- SqlDataRecord.cs
- GeometryDrawing.cs
- AttachedAnnotationChangedEventArgs.cs
- FontDriver.cs
- CacheMemory.cs
- BitmapSource.cs
- SqlUserDefinedTypeAttribute.cs
- tooltip.cs
- TextDecorationCollectionConverter.cs
- WebPartDescriptionCollection.cs
- Material.cs
- Misc.cs
- MappedMetaModel.cs
- ContentTextAutomationPeer.cs
- PkcsUtils.cs
- DynamicRendererThreadManager.cs
- ScriptServiceAttribute.cs
- TextEndOfSegment.cs
- IconHelper.cs
- UxThemeWrapper.cs
- safemediahandle.cs
- WebScriptMetadataMessageEncoderFactory.cs
- AssemblyAttributes.cs
- OledbConnectionStringbuilder.cs
- CommandLineParser.cs
- PlatformNotSupportedException.cs
- RenderData.cs
- SubMenuStyle.cs
- DiffuseMaterial.cs
- ZoneIdentityPermission.cs
- CallbackValidator.cs
- Rules.cs
- HashAlgorithm.cs
- CacheSection.cs
- SvcMapFileSerializer.cs
- PersonalizablePropertyEntry.cs
- SpecialFolderEnumConverter.cs
- SafeRightsManagementQueryHandle.cs
- SubstitutionResponseElement.cs
- safex509handles.cs
- DefaultShape.cs
- ServiceReference.cs
- SettingsProperty.cs
- JsonUriDataContract.cs
- SessionSwitchEventArgs.cs
- AbandonedMutexException.cs
- SystemDropShadowChrome.cs
- RuntimeConfig.cs
- BridgeDataReader.cs
- FixedPosition.cs
- XmlDeclaration.cs
- ModuleElement.cs
- SqlUdtInfo.cs
- DynamicDocumentPaginator.cs
- CodePrimitiveExpression.cs
- MetadataArtifactLoaderComposite.cs
- LinkClickEvent.cs
- sqlpipe.cs
- AdPostCacheSubstitution.cs
- Stroke2.cs
- Peer.cs
- CallbackValidator.cs
- ConfigurationPropertyAttribute.cs
- RoutedEvent.cs
- PeerName.cs
- HttpRuntimeSection.cs
- NameTable.cs
- PenThreadPool.cs
- Types.cs
- DesignerWebPartChrome.cs
- LogWriteRestartAreaState.cs
- SqlDataSourceStatusEventArgs.cs
- CategoryState.cs
- SettingsContext.cs
- MessageSecurityVersionConverter.cs
- ParameterToken.cs
- Focus.cs
- XmlSignatureProperties.cs
- CachedCompositeFamily.cs
- DataDocumentXPathNavigator.cs
- PrintDialog.cs
- MessageEventSubscriptionService.cs
- DrawingBrush.cs
- MobileSysDescriptionAttribute.cs
- XmlDataSourceNodeDescriptor.cs