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
- StateMachineWorkflow.cs
- LogLogRecordEnumerator.cs
- CultureData.cs
- SQLDouble.cs
- HttpHandlersSection.cs
- TargetConverter.cs
- Inline.cs
- IPEndPoint.cs
- WmlObjectListAdapter.cs
- URIFormatException.cs
- ExtensionDataReader.cs
- SafeBuffer.cs
- DecodeHelper.cs
- SiteMap.cs
- AtomMaterializerLog.cs
- FontFamilyConverter.cs
- NativeMethods.cs
- SecuritySessionFilter.cs
- HttpCookiesSection.cs
- SiteMapNodeItemEventArgs.cs
- CorrelationResolver.cs
- TypeForwardedToAttribute.cs
- EdmEntityTypeAttribute.cs
- BitmapEffectInputConnector.cs
- XhtmlCssHandler.cs
- XmlParserContext.cs
- ReadOnlyState.cs
- ScrollBar.cs
- ReverseInheritProperty.cs
- Part.cs
- DataGridViewRowPrePaintEventArgs.cs
- ReadOnlyDictionary.cs
- EqualityComparer.cs
- TemplateBaseAction.cs
- XmlSchemaParticle.cs
- DownloadProgressEventArgs.cs
- ColumnResult.cs
- DrawingBrush.cs
- ContentPlaceHolderDesigner.cs
- DataGridLinkButton.cs
- IdentifierService.cs
- SortedDictionary.cs
- PackWebRequest.cs
- DataGrid.cs
- PackWebRequest.cs
- TemplateControl.cs
- AssertUtility.cs
- UserNamePasswordValidator.cs
- counter.cs
- PeerInvitationResponse.cs
- TextEditorDragDrop.cs
- CriticalHandle.cs
- InstanceNormalEvent.cs
- TextRangeAdaptor.cs
- DBNull.cs
- Light.cs
- Certificate.cs
- DbDataReader.cs
- XsltException.cs
- NoneExcludedImageIndexConverter.cs
- TransactionScope.cs
- NavigationProperty.cs
- MailBnfHelper.cs
- SessionStateModule.cs
- EmptyStringExpandableObjectConverter.cs
- ThicknessConverter.cs
- FailedToStartupUIException.cs
- DelayedRegex.cs
- MarshalDirectiveException.cs
- SchemaElementDecl.cs
- CroppedBitmap.cs
- ScrollPattern.cs
- FormsAuthenticationCredentials.cs
- StringResourceManager.cs
- UIElementParagraph.cs
- AvTrace.cs
- SpecularMaterial.cs
- HMACMD5.cs
- InfoCardXmlSerializer.cs
- ToolStripEditorManager.cs
- WindowsIPAddress.cs
- HttpCacheVaryByContentEncodings.cs
- ValidationError.cs
- BinaryObjectWriter.cs
- BezierSegment.cs
- SevenBitStream.cs
- WebBaseEventKeyComparer.cs
- ConfigurationStrings.cs
- EventHandlers.cs
- CollectionContainer.cs
- AudioDeviceOut.cs
- TypeValidationEventArgs.cs
- TextEditorSpelling.cs
- BaseParser.cs
- OuterGlowBitmapEffect.cs
- RecognizerBase.cs
- FactoryGenerator.cs
- DetailsViewInsertedEventArgs.cs
- AttributeAction.cs
- SQLUtility.cs