Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / 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. 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
- TimerEventSubscription.cs
- _ScatterGatherBuffers.cs
- WindowsFormsHost.cs
- DesigntimeLicenseContextSerializer.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- BlobPersonalizationState.cs
- ProxyHwnd.cs
- BitmapEffectDrawingContextState.cs
- oledbmetadatacolumnnames.cs
- TextServicesProperty.cs
- FacetDescriptionElement.cs
- Span.cs
- NavigationHelper.cs
- ZoomPercentageConverter.cs
- LocalIdKeyIdentifierClause.cs
- WebBrowserPermission.cs
- BindingExpressionUncommonField.cs
- MessagePropertyDescription.cs
- BindingExpressionUncommonField.cs
- HMACRIPEMD160.cs
- ImageAutomationPeer.cs
- Logging.cs
- CharEntityEncoderFallback.cs
- DesignColumn.cs
- EntitySqlException.cs
- TextBounds.cs
- DataRecordInternal.cs
- AttributeUsageAttribute.cs
- XmlSchemaFacet.cs
- Thumb.cs
- GroupBox.cs
- BlurBitmapEffect.cs
- InternalConfigEventArgs.cs
- XmlSerializationReader.cs
- UIntPtr.cs
- ConfigurationErrorsException.cs
- PointAnimationBase.cs
- UdpChannelFactory.cs
- DataObjectFieldAttribute.cs
- Compiler.cs
- GenericUriParser.cs
- DoubleCollectionConverter.cs
- LocatorBase.cs
- UnsupportedPolicyOptionsException.cs
- ExpressionNormalizer.cs
- AspCompat.cs
- RemotingService.cs
- StreamReader.cs
- SeverityFilter.cs
- Socket.cs
- SocketPermission.cs
- XmlSchemaValidationException.cs
- UIElement.cs
- ApplicationContext.cs
- Gdiplus.cs
- DataPagerFieldCollection.cs
- HttpCacheVaryByContentEncodings.cs
- AlternateViewCollection.cs
- AsyncOperation.cs
- CustomCategoryAttribute.cs
- WebUtil.cs
- HTMLTagNameToTypeMapper.cs
- ProfessionalColorTable.cs
- AlphaSortedEnumConverter.cs
- HtmlForm.cs
- MethodBuilderInstantiation.cs
- ResumeStoryboard.cs
- SQLSingleStorage.cs
- SchemaSetCompiler.cs
- _SpnDictionary.cs
- UnsafeNativeMethods.cs
- DataGridViewLinkColumn.cs
- BindableAttribute.cs
- DocumentViewerBase.cs
- EntityDataSourceValidationException.cs
- HandleExceptionArgs.cs
- ConditionCollection.cs
- CheckedListBox.cs
- SqlError.cs
- MaskedTextBoxDesigner.cs
- TaskFormBase.cs
- ArrayWithOffset.cs
- CursorConverter.cs
- TrailingSpaceComparer.cs
- TemplateContentLoader.cs
- NonVisualControlAttribute.cs
- ListItem.cs
- QilName.cs
- SocketStream.cs
- DefaultWorkflowLoaderService.cs
- DbReferenceCollection.cs
- DeferredSelectedIndexReference.cs
- AbstractSvcMapFileLoader.cs
- ForeignKeyConstraint.cs
- WindowsTreeView.cs
- Msec.cs
- DivideByZeroException.cs
- ExeConfigurationFileMap.cs
- PlatformNotSupportedException.cs
- HighlightComponent.cs