Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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.
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
- ResourceFallbackManager.cs
- ProfileGroupSettings.cs
- WebPartConnectionsCancelEventArgs.cs
- SqlDataReader.cs
- TreeNode.cs
- Parser.cs
- BindingsCollection.cs
- HwndProxyElementProvider.cs
- PaginationProgressEventArgs.cs
- EncryptedKey.cs
- HttpAsyncResult.cs
- ModuleBuilder.cs
- GACMembershipCondition.cs
- ChannelEndpointElementCollection.cs
- PackageRelationship.cs
- OciEnlistContext.cs
- ModelService.cs
- HostingEnvironmentSection.cs
- DataSourceSelectArguments.cs
- WebBrowserBase.cs
- HttpCapabilitiesSectionHandler.cs
- ContainerParaClient.cs
- ModuleBuilder.cs
- BitmapSource.cs
- GifBitmapEncoder.cs
- StructuredType.cs
- TransactionFlowBindingElement.cs
- VisemeEventArgs.cs
- SEHException.cs
- MatrixTransform.cs
- PersistChildrenAttribute.cs
- SafeTimerHandle.cs
- handlecollector.cs
- CommandLibraryHelper.cs
- DrawingCollection.cs
- RelationshipWrapper.cs
- XsltFunctions.cs
- MergeFailedEvent.cs
- ListViewEditEventArgs.cs
- DataKey.cs
- RuntimeTransactionHandle.cs
- Debug.cs
- SvcMapFileSerializer.cs
- EntityDataSourceReferenceGroup.cs
- ToRequest.cs
- storagemappingitemcollection.viewdictionary.cs
- StrongNameHelpers.cs
- DataControlImageButton.cs
- DiscoveryMessageSequence.cs
- HtmlTable.cs
- InvalidFilterCriteriaException.cs
- RegexCompiler.cs
- TimeSpanOrInfiniteConverter.cs
- ListViewItemEventArgs.cs
- TypeConverter.cs
- FileStream.cs
- ArgumentValidation.cs
- DesignerForm.cs
- PropertyIDSet.cs
- RunInstallerAttribute.cs
- SafeIUnknown.cs
- PerformanceCounterPermissionEntry.cs
- BasicAsyncResult.cs
- MailMessage.cs
- FocusTracker.cs
- NativeMethods.cs
- XPathAncestorIterator.cs
- DataGridPagerStyle.cs
- BitmapMetadataBlob.cs
- ContainerTracking.cs
- XMLUtil.cs
- EventLogQuery.cs
- Regex.cs
- DisableDpiAwarenessAttribute.cs
- DataGridViewSelectedCellCollection.cs
- TypeGeneratedEventArgs.cs
- designeractionlistschangedeventargs.cs
- DbDataAdapter.cs
- RangeExpression.cs
- ReaderWriterLockSlim.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- HitTestParameters3D.cs
- ViewEvent.cs
- GlyphingCache.cs
- GroupBoxDesigner.cs
- RawUIStateInputReport.cs
- ShaderRenderModeValidation.cs
- NullRuntimeConfig.cs
- XmlNode.cs
- DbModificationClause.cs
- FileRecordSequenceCompletedAsyncResult.cs
- AssemblyResourceLoader.cs
- TextChangedEventArgs.cs
- AsyncResult.cs
- FormViewInsertEventArgs.cs
- MemberHolder.cs
- UriWriter.cs
- SqlStatistics.cs
- CharKeyFrameCollection.cs
- DataServiceRequestOfT.cs