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
- Sql8ExpressionRewriter.cs
- IdentifierService.cs
- Process.cs
- CopyAttributesAction.cs
- RMEnrollmentPage2.cs
- LinkButton.cs
- FormattedText.cs
- Mapping.cs
- DbQueryCommandTree.cs
- CrossAppDomainChannel.cs
- ActivityExecutionWorkItem.cs
- SqlRecordBuffer.cs
- LocationEnvironment.cs
- WindowsContainer.cs
- MemberMaps.cs
- ServiceOperation.cs
- EntityDataSourceConfigureObjectContext.cs
- BinaryFormatter.cs
- WorkflowRuntimeServiceElement.cs
- ProfileManager.cs
- ReflectionTypeLoadException.cs
- NullableBoolConverter.cs
- EncoderExceptionFallback.cs
- EllipticalNodeOperations.cs
- TabControl.cs
- KeysConverter.cs
- MulticastIPAddressInformationCollection.cs
- DataControlFieldCell.cs
- SqlWebEventProvider.cs
- COM2IPerPropertyBrowsingHandler.cs
- ClientFormsAuthenticationCredentials.cs
- ServiceNotStartedException.cs
- ButtonBase.cs
- DefaultExpression.cs
- UIElementParaClient.cs
- StylusPointDescription.cs
- Color.cs
- EventItfInfo.cs
- EnumValAlphaComparer.cs
- GridViewEditEventArgs.cs
- BitmapMetadataEnumerator.cs
- ObjectDataSourceWizardForm.cs
- XDRSchema.cs
- XmlLinkedNode.cs
- HyperLink.cs
- DnsPermission.cs
- CharUnicodeInfo.cs
- NavigationProperty.cs
- COAUTHINFO.cs
- DropShadowBitmapEffect.cs
- FixedPosition.cs
- CounterSampleCalculator.cs
- HistoryEventArgs.cs
- ArraySortHelper.cs
- OwnerDrawPropertyBag.cs
- RelatedPropertyManager.cs
- X509Certificate.cs
- ConsoleTraceListener.cs
- DataGridAutoFormatDialog.cs
- CollectionChangeEventArgs.cs
- EmptyEnumerator.cs
- InputReport.cs
- ObjectAnimationBase.cs
- PointCollection.cs
- FilterableAttribute.cs
- KnownBoxes.cs
- SQLDecimal.cs
- ComponentResourceManager.cs
- LayoutDump.cs
- HierarchicalDataBoundControl.cs
- PublisherIdentityPermission.cs
- ZipIOExtraFieldPaddingElement.cs
- GroupBoxRenderer.cs
- AssignDesigner.xaml.cs
- SecurityPolicySection.cs
- TemplatedWizardStep.cs
- SQLBinary.cs
- EnumerableCollectionView.cs
- SqlClientWrapperSmiStream.cs
- EventTask.cs
- _KerberosClient.cs
- ListViewDataItem.cs
- WSIdentityFaultException.cs
- CollectionViewProxy.cs
- TextRunCache.cs
- XmlWellformedWriter.cs
- ThrowHelper.cs
- IIS7WorkerRequest.cs
- EllipseGeometry.cs
- XsltException.cs
- BitmapVisualManager.cs
- HandoffBehavior.cs
- SymbolEqualComparer.cs
- IPHostEntry.cs
- CombinedGeometry.cs
- EdmComplexPropertyAttribute.cs
- IDispatchConstantAttribute.cs
- OutputScopeManager.cs
- SystemGatewayIPAddressInformation.cs
- DataColumnMapping.cs