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
- AnnotationResource.cs
- HtmlTableRowCollection.cs
- XPathDocumentIterator.cs
- RelationshipManager.cs
- remotingproxy.cs
- BindingNavigator.cs
- COM2PropertyDescriptor.cs
- AssociationType.cs
- XsdCachingReader.cs
- Margins.cs
- SoapSchemaMember.cs
- ToolStripRendererSwitcher.cs
- CapabilitiesPattern.cs
- MSAAEventDispatcher.cs
- ModelVisual3D.cs
- ButtonFieldBase.cs
- HttpServerProtocol.cs
- DataGridItemEventArgs.cs
- DiscoveryViaBehavior.cs
- MultipleCopiesCollection.cs
- Button.cs
- TypeToken.cs
- ClientScriptItem.cs
- SqlBooleanMismatchVisitor.cs
- TakeQueryOptionExpression.cs
- UrlPropertyAttribute.cs
- DefaultValidator.cs
- TransportBindingElementImporter.cs
- WebPartConnectionsConfigureVerb.cs
- XslUrlEditor.cs
- ContainerUIElement3D.cs
- PipelineModuleStepContainer.cs
- GridProviderWrapper.cs
- AttributeEmitter.cs
- PenLineCapValidation.cs
- SrgsToken.cs
- ToolStripItemClickedEventArgs.cs
- FormatException.cs
- SplitterEvent.cs
- ToolTipService.cs
- CornerRadiusConverter.cs
- ProfilePropertySettingsCollection.cs
- Types.cs
- SemaphoreSecurity.cs
- TitleStyle.cs
- sitestring.cs
- AvTrace.cs
- DeflateStream.cs
- Metafile.cs
- ScrollBar.cs
- SchemaObjectWriter.cs
- CommandField.cs
- TextStore.cs
- KeyManager.cs
- HandlerWithFactory.cs
- ProxyWebPart.cs
- DataControlLinkButton.cs
- ButtonColumn.cs
- Normalization.cs
- SubstitutionList.cs
- DataPagerFieldCollection.cs
- ClientScriptItemCollection.cs
- SerializationStore.cs
- MetaDataInfo.cs
- AppLevelCompilationSectionCache.cs
- ExternalException.cs
- AmbientLight.cs
- SafeMemoryMappedViewHandle.cs
- SecurityTokenProvider.cs
- CompiledRegexRunnerFactory.cs
- NoClickablePointException.cs
- ProviderConnectionPointCollection.cs
- ScriptResourceInfo.cs
- TranslateTransform3D.cs
- Point3DCollection.cs
- ParameterReplacerVisitor.cs
- BufferedOutputStream.cs
- HMAC.cs
- CodeFieldReferenceExpression.cs
- EventWaitHandle.cs
- CryptoKeySecurity.cs
- CompositeCollectionView.cs
- CompilerCollection.cs
- BuildResultCache.cs
- EntityDataSourceMemberPath.cs
- LineMetrics.cs
- GPStream.cs
- Block.cs
- TerminatingOperationBehavior.cs
- SerializationSectionGroup.cs
- Viewport3DAutomationPeer.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ConstantCheck.cs
- RemoteDebugger.cs
- Int64AnimationUsingKeyFrames.cs
- SimpleType.cs
- OrCondition.cs
- MetroSerializationManager.cs
- XhtmlConformanceSection.cs
- BaseUriHelper.cs