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
- ListItem.cs
- ipaddressinformationcollection.cs
- ExtensionSimplifierMarkupObject.cs
- _BaseOverlappedAsyncResult.cs
- HtmlElementEventArgs.cs
- WhitespaceSignificantCollectionAttribute.cs
- CryptoProvider.cs
- SystemInformation.cs
- StoragePropertyMapping.cs
- DomNameTable.cs
- ProcessModuleCollection.cs
- DrawToolTipEventArgs.cs
- SrgsRuleRef.cs
- TimeoutValidationAttribute.cs
- translator.cs
- ScrollBar.cs
- RelatedEnd.cs
- Rect3DValueSerializer.cs
- RepeatEnumerable.cs
- GridView.cs
- EndpointAddressMessageFilter.cs
- X509Certificate.cs
- CodeDirectionExpression.cs
- MultipleCopiesCollection.cs
- SqlDataSourceCommandEventArgs.cs
- PackagePart.cs
- CodeConstructor.cs
- EditorPartChrome.cs
- SizeValueSerializer.cs
- MatrixTransform3D.cs
- DataBinding.cs
- DoubleStorage.cs
- XmlUtf8RawTextWriter.cs
- StsCommunicationException.cs
- ClientCultureInfo.cs
- ChildTable.cs
- LinqDataSourceInsertEventArgs.cs
- HttpHandlerAction.cs
- MiniCustomAttributeInfo.cs
- StructuralComparisons.cs
- Single.cs
- NetworkInformationPermission.cs
- SessionStateContainer.cs
- NonParentingControl.cs
- DataGridTableCollection.cs
- DocobjHost.cs
- mediapermission.cs
- AccessDataSourceDesigner.cs
- PeerReferralPolicy.cs
- SessionEndedEventArgs.cs
- Cursor.cs
- XPathSelfQuery.cs
- Propagator.ExtentPlaceholderCreator.cs
- QilScopedVisitor.cs
- XmlEntityReference.cs
- SaveFileDialog.cs
- StylusPlugInCollection.cs
- AspCompat.cs
- SerialPinChanges.cs
- InstanceCreationEditor.cs
- RelationshipEndMember.cs
- DbProviderFactories.cs
- DataServiceExpressionVisitor.cs
- KerberosSecurityTokenParameters.cs
- StreamGeometry.cs
- WebPartUserCapability.cs
- CompareInfo.cs
- SmiGettersStream.cs
- DrawingGroup.cs
- GlyphCache.cs
- UserControlDocumentDesigner.cs
- WSDualHttpBindingCollectionElement.cs
- TemplateDefinition.cs
- PeerReferralPolicy.cs
- BackStopAuthenticationModule.cs
- XmlDocumentType.cs
- SystemEvents.cs
- GraphicsContainer.cs
- DataColumnChangeEvent.cs
- ConstructorExpr.cs
- BaseCAMarshaler.cs
- ResourceProviderFactory.cs
- COM2PropertyDescriptor.cs
- CategoryAttribute.cs
- TreeNodeCollection.cs
- _NegoStream.cs
- DataPagerCommandEventArgs.cs
- ListBindableAttribute.cs
- TextLine.cs
- XmlName.cs
- TextDecorationUnitValidation.cs
- FrameSecurityDescriptor.cs
- ArrangedElementCollection.cs
- DiscoveryRequestHandler.cs
- BitmapEffect.cs
- ObjectDisposedException.cs
- HttpChannelFactory.cs
- FormatStringEditor.cs
- baseshape.cs
- SafeViewOfFileHandle.cs