Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- DatatypeImplementation.cs
- ServicesExceptionNotHandledEventArgs.cs
- DatasetMethodGenerator.cs
- CngUIPolicy.cs
- ActivityTypeCodeDomSerializer.cs
- EventDescriptor.cs
- Style.cs
- XmlILIndex.cs
- CompositeCollection.cs
- OciEnlistContext.cs
- RecommendedAsConfigurableAttribute.cs
- SqlInternalConnection.cs
- XmlUTF8TextWriter.cs
- SettingsPropertyWrongTypeException.cs
- AsyncPostBackTrigger.cs
- DataGridViewCheckBoxCell.cs
- milrender.cs
- ZipFileInfo.cs
- MouseEventArgs.cs
- TimersDescriptionAttribute.cs
- PluralizationService.cs
- PrePostDescendentsWalker.cs
- MD5.cs
- ByteAnimationUsingKeyFrames.cs
- ArraySegment.cs
- ResourceDisplayNameAttribute.cs
- ConfigurationProperty.cs
- Proxy.cs
- GeneralTransformCollection.cs
- Converter.cs
- HtmlInputRadioButton.cs
- XmlSchemaComplexType.cs
- EventMappingSettingsCollection.cs
- Convert.cs
- InputBinder.cs
- RichTextBox.cs
- QualifiedCellIdBoolean.cs
- ComponentDispatcherThread.cs
- FaultFormatter.cs
- GPRECTF.cs
- WebException.cs
- MsmqProcessProtocolHandler.cs
- SchemaType.cs
- WebPartDisplayMode.cs
- InputReport.cs
- StorageBasedPackageProperties.cs
- ControlType.cs
- TagPrefixInfo.cs
- Convert.cs
- DrawingImage.cs
- SerializationException.cs
- ControlAdapter.cs
- XmlWrappingWriter.cs
- SortDescriptionCollection.cs
- PresentationSource.cs
- CacheChildrenQuery.cs
- TrackingStringDictionary.cs
- ProviderIncompatibleException.cs
- AssertSection.cs
- RequestCachePolicy.cs
- Section.cs
- DispatcherProcessingDisabled.cs
- ListViewTableRow.cs
- PropertyDescriptorComparer.cs
- XPathCompileException.cs
- TypefaceMetricsCache.cs
- HierarchicalDataBoundControlAdapter.cs
- SafeNativeMethods.cs
- AccessDataSourceView.cs
- OneWayChannelListener.cs
- _NegoState.cs
- SafeNativeMethods.cs
- TemplateManager.cs
- PaginationProgressEventArgs.cs
- PropertyMapper.cs
- BlobPersonalizationState.cs
- UpdateCommand.cs
- BindStream.cs
- RuntimeArgumentHandle.cs
- IdentityModelDictionary.cs
- PropertyIDSet.cs
- CompressedStack.cs
- LineServices.cs
- LongTypeConverter.cs
- OdbcConnectionStringbuilder.cs
- WebScriptClientGenerator.cs
- RecognizerInfo.cs
- ParserExtension.cs
- ExceptionUtil.cs
- DrawingVisual.cs
- SeekStoryboard.cs
- UnauthorizedWebPart.cs
- WindowsListViewGroupHelper.cs
- TableLayoutStyle.cs
- Error.cs
- DataStreamFromComStream.cs
- SchemaTableOptionalColumn.cs
- IPipelineRuntime.cs
- BeginEvent.cs
- EncoderParameter.cs