Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / Win32MouseDevice.cs / 1305600 / 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
- ThreadWorkerController.cs
- LicenseContext.cs
- BamlLocalizabilityResolver.cs
- XsdValidatingReader.cs
- ViewSimplifier.cs
- PropertyExpression.cs
- StorageBasedPackageProperties.cs
- SparseMemoryStream.cs
- Item.cs
- BindingManagerDataErrorEventArgs.cs
- ConfigurationErrorsException.cs
- PointConverter.cs
- ArglessEventHandlerProxy.cs
- IdentityModelStringsVersion1.cs
- StandardToolWindows.cs
- DbDataSourceEnumerator.cs
- ApplyTemplatesAction.cs
- EdmItemCollection.cs
- GroupJoinQueryOperator.cs
- DataViewSettingCollection.cs
- RegexCharClass.cs
- ADConnectionHelper.cs
- LinkArea.cs
- columnmapfactory.cs
- DataBoundControlActionList.cs
- UpDownEvent.cs
- RijndaelManagedTransform.cs
- AtomicFile.cs
- SqlBuffer.cs
- HttpChannelFactory.cs
- InternalConfigEventArgs.cs
- TcpChannelHelper.cs
- PropertyToken.cs
- _SslStream.cs
- XmlCharType.cs
- UseLicense.cs
- ApplicationActivator.cs
- TextBox.cs
- PhysicalFontFamily.cs
- recordstate.cs
- UserControlAutomationPeer.cs
- listitem.cs
- _NtlmClient.cs
- CacheSection.cs
- StrongNamePublicKeyBlob.cs
- DataGridViewBand.cs
- AssemblySettingAttributes.cs
- WhitespaceSignificantCollectionAttribute.cs
- DesignerSerializationOptionsAttribute.cs
- ControlCollection.cs
- ButtonBase.cs
- DynamicActionMessageFilter.cs
- ControlBindingsCollection.cs
- GridViewRow.cs
- StringConverter.cs
- RegexMatchCollection.cs
- Matrix.cs
- VBCodeProvider.cs
- PageContentAsyncResult.cs
- TimerElapsedEvenArgs.cs
- FillRuleValidation.cs
- RenderDataDrawingContext.cs
- PropertyDescriptor.cs
- ApplicationHost.cs
- WinFormsComponentEditor.cs
- WebResourceAttribute.cs
- sqlser.cs
- Point4D.cs
- MarshalDirectiveException.cs
- UserControlAutomationPeer.cs
- TripleDESCryptoServiceProvider.cs
- _LocalDataStore.cs
- BitmapEffect.cs
- DesignerAttribute.cs
- WebServiceResponse.cs
- TypeValidationEventArgs.cs
- ClientOperation.cs
- ZipIOLocalFileHeader.cs
- DbConnectionPool.cs
- RectIndependentAnimationStorage.cs
- UserControlParser.cs
- _NestedMultipleAsyncResult.cs
- UTF7Encoding.cs
- Translator.cs
- ParallelDesigner.xaml.cs
- TextFormatterImp.cs
- GridItemCollection.cs
- Int32Storage.cs
- TextBreakpoint.cs
- AssertFilter.cs
- ThrowHelper.cs
- ProfilePropertySettingsCollection.cs
- AmbientLight.cs
- unitconverter.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- CodeCastExpression.cs
- Events.cs
- ApplicationSecurityInfo.cs
- ConfigurationStrings.cs
- DomainLiteralReader.cs