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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EpmCustomContentWriterNodeData.cs
- FaultContext.cs
- FillErrorEventArgs.cs
- JournalEntry.cs
- MexHttpBindingCollectionElement.cs
- OutputCacheProviderCollection.cs
- BufferCache.cs
- UITypeEditors.cs
- ElementHostAutomationPeer.cs
- QuaternionAnimation.cs
- Point3DCollectionConverter.cs
- PriorityChain.cs
- ListViewHitTestInfo.cs
- MessageQueueKey.cs
- TextWriter.cs
- SmiEventStream.cs
- DiscoveryClientChannelFactory.cs
- DataListItemEventArgs.cs
- Pair.cs
- SectionXmlInfo.cs
- Oci.cs
- WpfWebRequestHelper.cs
- FontFamilyIdentifier.cs
- TextTreeNode.cs
- SourceInterpreter.cs
- HtmlInputButton.cs
- DebugControllerThread.cs
- DefaultAuthorizationContext.cs
- ExpressionsCollectionConverter.cs
- XmlDictionaryString.cs
- formatter.cs
- BrushConverter.cs
- DefaultHttpHandler.cs
- ForEachAction.cs
- KeyInfo.cs
- ExtensionQuery.cs
- PageThemeParser.cs
- OdbcInfoMessageEvent.cs
- ListViewTableRow.cs
- Variant.cs
- NamespaceQuery.cs
- BitConverter.cs
- QuestionEventArgs.cs
- GridViewEditEventArgs.cs
- MouseWheelEventArgs.cs
- CodeArgumentReferenceExpression.cs
- AtomServiceDocumentSerializer.cs
- RadioButtonStandardAdapter.cs
- FontWeight.cs
- SelectionEditingBehavior.cs
- DependencySource.cs
- DataGridViewCellStyleBuilderDialog.cs
- WebPartTransformer.cs
- PauseStoryboard.cs
- WebPartEventArgs.cs
- FileLevelControlBuilderAttribute.cs
- CacheRequest.cs
- OptionUsage.cs
- ImpersonationContext.cs
- PartialCachingControl.cs
- ExtractorMetadata.cs
- PackageDigitalSignature.cs
- ExpressionBindingCollection.cs
- GroupBoxAutomationPeer.cs
- NgenServicingAttributes.cs
- OlePropertyStructs.cs
- sqlpipe.cs
- HttpPostedFile.cs
- PointAnimationUsingKeyFrames.cs
- RelationshipEndCollection.cs
- UIntPtr.cs
- QuestionEventArgs.cs
- RelatedEnd.cs
- TreeNodeStyleCollection.cs
- NumericUpDownAccelerationCollection.cs
- RowBinding.cs
- XamlParser.cs
- TimelineGroup.cs
- ButtonPopupAdapter.cs
- DocumentEventArgs.cs
- SchemaTableColumn.cs
- WinEventWrap.cs
- FontWeight.cs
- WebFormsRootDesigner.cs
- AssemblySettingAttributes.cs
- CharacterString.cs
- DownloadProgressEventArgs.cs
- SqlAliaser.cs
- XPathItem.cs
- Pkcs7Signer.cs
- ExtenderHelpers.cs
- AdRotator.cs
- EntityWithChangeTrackerStrategy.cs
- AnnotationAuthorChangedEventArgs.cs
- XmlSchemaSimpleContent.cs
- SqlSelectStatement.cs
- FolderBrowserDialog.cs
- GroupStyle.cs
- DllNotFoundException.cs
- XmlResolver.cs