Code:
/ 4.0 / 4.0 / 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. 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HTMLTagNameToTypeMapper.cs
- BooleanExpr.cs
- SqlTriggerAttribute.cs
- BoundColumn.cs
- WebRequestModuleElementCollection.cs
- VisualBrush.cs
- EntitySqlException.cs
- ValueHandle.cs
- DesignerActionItem.cs
- TableProvider.cs
- ProgressBarRenderer.cs
- DisplayNameAttribute.cs
- ScriptBehaviorDescriptor.cs
- SafeHandle.cs
- EditingScope.cs
- Point3DValueSerializer.cs
- ModelItemImpl.cs
- NativeMethods.cs
- BufferModesCollection.cs
- DBConcurrencyException.cs
- columnmapfactory.cs
- Descriptor.cs
- XpsImageSerializationService.cs
- SqlReferenceCollection.cs
- SecurityTokenReferenceStyle.cs
- SqlConnectionHelper.cs
- PeerApplication.cs
- TransportationConfigurationTypeInstallComponent.cs
- PassportAuthentication.cs
- ReadOnlyPermissionSet.cs
- cookiecontainer.cs
- DesignConnection.cs
- ClientRuntimeConfig.cs
- SimpleBitVector32.cs
- ContainerTracking.cs
- TreeViewImageIndexConverter.cs
- ErrorFormatterPage.cs
- TreeNodeSelectionProcessor.cs
- SqlCharStream.cs
- SelectionEditingBehavior.cs
- DeviceContext2.cs
- ComponentConverter.cs
- VectorCollection.cs
- SecurityDescriptor.cs
- XmlSerializerVersionAttribute.cs
- FilteredXmlReader.cs
- Size3D.cs
- PriorityChain.cs
- DefaultMemberAttribute.cs
- InstanceStoreQueryResult.cs
- BStrWrapper.cs
- SizeValueSerializer.cs
- ImportContext.cs
- MULTI_QI.cs
- AuthenticationException.cs
- FontInfo.cs
- AccessViolationException.cs
- TextTreePropertyUndoUnit.cs
- Wizard.cs
- TypeGeneratedEventArgs.cs
- LiteralLink.cs
- ChannelManager.cs
- CodeDomDesignerLoader.cs
- StrokeNodeEnumerator.cs
- CacheAxisQuery.cs
- UIElement3DAutomationPeer.cs
- AttributeSetAction.cs
- ReliabilityContractAttribute.cs
- EllipseGeometry.cs
- ADMembershipProvider.cs
- Thickness.cs
- DataGridRowClipboardEventArgs.cs
- Switch.cs
- PreservationFileWriter.cs
- HtmlImageAdapter.cs
- SymLanguageType.cs
- SoapReflectionImporter.cs
- UidPropertyAttribute.cs
- NullExtension.cs
- InputMethodStateChangeEventArgs.cs
- ScrollItemProviderWrapper.cs
- ProgressBarAutomationPeer.cs
- _HeaderInfoTable.cs
- ConfigXmlComment.cs
- ResourceIDHelper.cs
- CryptoApi.cs
- ProfessionalColorTable.cs
- Avt.cs
- RoleManagerModule.cs
- LocatorBase.cs
- TraceLog.cs
- EventsTab.cs
- ResourcesBuildProvider.cs
- XmlSchemaRedefine.cs
- CodeSnippetStatement.cs
- NameObjectCollectionBase.cs
- RealizationDrawingContextWalker.cs
- Buffer.cs
- HMACRIPEMD160.cs
- HttpRawResponse.cs