Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / RawMouseInputReport.cs / 1305600 / RawMouseInputReport.cs
using System.Windows.Media; //
using System.Security;
using System.Security.Permissions;
using MS.Internal;
using MS.Internal.PresentationCore;
using MS.Win32;
using System;
namespace System.Windows.Input
{
///
/// The RawMouseInputReport class encapsulates the raw input provided
/// from a mouse.
///
///
/// It is important to note that the InputReport class only contains
/// blittable types. This is required so that the report can be
/// marshalled across application domains.
///
[FriendAccessAllowed]
internal class RawMouseInputReport : InputReport
{
///
/// Constructs ad instance of the RawMouseInputReport class.
///
///
/// The mode in which the input is being provided.
///
///
/// The time when the input occured.
///
///
/// The PresentationSource over which the mouse is moved.
///
///
/// The set of actions being reported.
///
///
/// If horizontal position being reported.
///
///
/// If vertical position being reported.
///
///
/// If wheel delta being reported.
///
///
/// Any extra information being provided along with the input.
///
///
/// Critical:This handles critical data in the form of PresentationSource and ExtraInformation
/// TreatAsSafe:There are demands on the critical data(PresentationSource/ExtraInformation)
///
[SecurityCritical, SecurityTreatAsSafe]
public RawMouseInputReport(
InputMode mode,
int timestamp,
PresentationSource inputSource,
RawMouseActions actions,
int x,
int y,
int wheel,
IntPtr extraInformation) : base(inputSource, InputType.Mouse, mode, timestamp)
{
if (!IsValidRawMouseActions(actions))
throw new System.ComponentModel.InvalidEnumArgumentException("actions", (int)actions, typeof(RawMouseActions));
/* we pass a null state from MouseDevice.PreProcessorInput, so null is valid value for state */
_actions = actions;
_x = x;
_y = y;
_wheel = wheel;
_extraInformation = new SecurityCriticalData(extraInformation);
}
///
/// Read-only access to the set of actions that were reported.
///
public RawMouseActions Actions {get {return _actions;}}
///
/// Read-only access to the horizontal position that was reported.
///
public int X {get {return _x;}}
///
/// Read-only access to the vertical position that was reported.
///
public int Y {get {return _y;}}
///
/// Read-only access to the wheel delta that was reported.
///
public int Wheel {get {return _wheel;}}
///
/// Read-only access to the extra information was provided along
/// with the input.
///
///
/// Critical: This data was got under an elevation. There exists a link demand to
/// block access. The critical exists to catch new callers too.
///
public IntPtr ExtraInformation
{
[SecurityCritical]
get
{
return _extraInformation.Value;
}
}
// IsValid Method for RawMouseActions. Relies on the enum being flags.
internal static bool IsValidRawMouseActions(RawMouseActions actions)
{
if (actions == RawMouseActions.None)
return true;
if ((( RawMouseActions.AttributesChanged | RawMouseActions.Activate | RawMouseActions.Deactivate |
RawMouseActions.RelativeMove | RawMouseActions.AbsoluteMove | RawMouseActions.VirtualDesktopMove |
RawMouseActions.Button1Press | RawMouseActions.Button1Release |
RawMouseActions.Button2Press | RawMouseActions.Button2Release |
RawMouseActions.Button3Press | RawMouseActions.Button3Release |
RawMouseActions.Button4Press | RawMouseActions.Button4Release |
RawMouseActions.Button5Press | RawMouseActions.Button5Release |
RawMouseActions.VerticalWheelRotate | RawMouseActions.HorizontalWheelRotate |
RawMouseActions.CancelCapture |
RawMouseActions.QueryCursor) & actions) == actions)
{
if (!(((RawMouseActions.Deactivate & actions) == actions && RawMouseActions.Deactivate != actions ) ||
(((RawMouseActions.Button1Press | RawMouseActions.Button1Release) & actions) == (RawMouseActions.Button1Press | RawMouseActions.Button1Release)) ||
(((RawMouseActions.Button2Press | RawMouseActions.Button2Release) & actions) == (RawMouseActions.Button2Press | RawMouseActions.Button2Release)) ||
(((RawMouseActions.Button3Press | RawMouseActions.Button3Release) & actions) == (RawMouseActions.Button3Press | RawMouseActions.Button3Release)) ||
(((RawMouseActions.Button4Press | RawMouseActions.Button4Release) & actions) == (RawMouseActions.Button4Press | RawMouseActions.Button4Release)) ||
(((RawMouseActions.Button5Press | RawMouseActions.Button5Release) & actions) == (RawMouseActions.Button5Press | RawMouseActions.Button5Release))))
{
return true;
}
}
return false;
}
private RawMouseActions _actions;
private int _x;
private int _y;
private int _wheel;
internal bool _isSynchronize; // Set from MouseDevice.Synchronize.
///
/// Critical:This data was got under an elevation and is not safe to expose.
///
private SecurityCriticalData _extraInformation;
}
}
// 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
- ClipboardData.cs
- GatewayDefinition.cs
- HostingEnvironmentWrapper.cs
- DrawingBrush.cs
- SecurityPermission.cs
- FileRecordSequenceCompletedAsyncResult.cs
- SmiGettersStream.cs
- OrderedDictionary.cs
- DataGridViewLinkCell.cs
- FilteredDataSetHelper.cs
- CacheAxisQuery.cs
- itemelement.cs
- Operand.cs
- UrlParameterWriter.cs
- TextComposition.cs
- RangeValuePatternIdentifiers.cs
- WizardStepBase.cs
- CapabilitiesRule.cs
- SqlVisitor.cs
- OneWayChannelFactory.cs
- HtmlInputFile.cs
- RegexCode.cs
- PeerNearMe.cs
- CodeAccessPermission.cs
- WebResourceAttribute.cs
- MenuItemStyleCollection.cs
- CachedPathData.cs
- BamlWriter.cs
- XMLUtil.cs
- ApplicationException.cs
- TextEditor.cs
- MobileTextWriter.cs
- BrowserCapabilitiesFactoryBase.cs
- DataGridBeginningEditEventArgs.cs
- ClientFormsIdentity.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- PngBitmapEncoder.cs
- Timer.cs
- HttpApplication.cs
- HandoffBehavior.cs
- QilParameter.cs
- XmlSignatureManifest.cs
- EqualityComparer.cs
- AttachedPropertyMethodSelector.cs
- PropertyIDSet.cs
- GeneratedContractType.cs
- ScrollProperties.cs
- InternalConfigHost.cs
- CompoundFileIOPermission.cs
- HttpModulesSection.cs
- TabControlCancelEvent.cs
- StatusStrip.cs
- DBNull.cs
- WorkflowStateRollbackService.cs
- SqlGenericUtil.cs
- DataTransferEventArgs.cs
- EntityProxyTypeInfo.cs
- CommentAction.cs
- CommonEndpointBehaviorElement.cs
- MaxMessageSizeStream.cs
- DataComponentMethodGenerator.cs
- SmtpLoginAuthenticationModule.cs
- XmlSchemaResource.cs
- CopyOnWriteList.cs
- HashCodeCombiner.cs
- ResourcePool.cs
- UIPropertyMetadata.cs
- InvalidCastException.cs
- Activity.cs
- ServerIdentity.cs
- XhtmlConformanceSection.cs
- Emitter.cs
- TreeView.cs
- WindowsContainer.cs
- SqlProviderServices.cs
- TrimSurroundingWhitespaceAttribute.cs
- __TransparentProxy.cs
- AnnotationMap.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- WebPartsPersonalization.cs
- DotAtomReader.cs
- FloaterBaseParaClient.cs
- MachineKey.cs
- HtmlTextArea.cs
- WebBrowserNavigatedEventHandler.cs
- DataGridItemAutomationPeer.cs
- InputEventArgs.cs
- Matrix3D.cs
- OracleEncoding.cs
- XNodeValidator.cs
- ValidatorCollection.cs
- FilteredXmlReader.cs
- SrgsGrammar.cs
- UnionExpr.cs
- CSharpCodeProvider.cs
- MasterPageBuildProvider.cs
- PaperSource.cs
- ExpressionBuilder.cs
- TypeUtil.cs
- DoubleAnimationUsingPath.cs