Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Input / RawMouseInputReport.cs / 1 / 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
- Sql8ExpressionRewriter.cs
- MethodExpr.cs
- SqlNodeAnnotation.cs
- XsltException.cs
- HttpCacheVary.cs
- XPathExpr.cs
- BitmapFrame.cs
- DotExpr.cs
- DataSourceCacheDurationConverter.cs
- StorageScalarPropertyMapping.cs
- DotNetATv1WindowsLogEntryDeserializer.cs
- CallbackHandler.cs
- StaticContext.cs
- CacheChildrenQuery.cs
- OverflowException.cs
- DrawItemEvent.cs
- GridViewSelectEventArgs.cs
- hresults.cs
- HttpSessionStateWrapper.cs
- BypassElement.cs
- SoapIncludeAttribute.cs
- WebPartChrome.cs
- BaseTemplateParser.cs
- FilterQueryOptionExpression.cs
- GenericNameHandler.cs
- ConsoleCancelEventArgs.cs
- SeekStoryboard.cs
- WebPartTransformerAttribute.cs
- PersonalizationDictionary.cs
- SafeLibraryHandle.cs
- SortedDictionary.cs
- QilScopedVisitor.cs
- LinearKeyFrames.cs
- TypeUnloadedException.cs
- QuerySetOp.cs
- SingleAnimationUsingKeyFrames.cs
- EventLogTraceListener.cs
- DocumentAutomationPeer.cs
- NativeMethods.cs
- ExtensionSimplifierMarkupObject.cs
- ScopelessEnumAttribute.cs
- ReceiveSecurityHeader.cs
- RedistVersionInfo.cs
- Brush.cs
- ReceiveErrorHandling.cs
- XmlBinaryReader.cs
- XmlSchemaSimpleContentExtension.cs
- ExternalCalls.cs
- EntityDataSourceValidationException.cs
- DataGridViewColumnDesigner.cs
- Transform3DGroup.cs
- WmfPlaceableFileHeader.cs
- Point.cs
- GridView.cs
- _LoggingObject.cs
- LinkDescriptor.cs
- QueueAccessMode.cs
- X509SecurityTokenProvider.cs
- DefaultValidator.cs
- FixedTextSelectionProcessor.cs
- RepeaterItem.cs
- XPathSelfQuery.cs
- PersonalizationState.cs
- AsyncCompletedEventArgs.cs
- PropagatorResult.cs
- RuntimeUtils.cs
- SchemaTableOptionalColumn.cs
- CaseInsensitiveHashCodeProvider.cs
- HttpSysSettings.cs
- StrongTypingException.cs
- RemoveStoryboard.cs
- filewebresponse.cs
- CLSCompliantAttribute.cs
- Attributes.cs
- X509CertificateEndpointIdentity.cs
- WmlSelectionListAdapter.cs
- DataBoundControlAdapter.cs
- DateTimeConstantAttribute.cs
- HwndHostAutomationPeer.cs
- FusionWrap.cs
- FastEncoderWindow.cs
- TraceSection.cs
- InsufficientMemoryException.cs
- ContentPathSegment.cs
- ExceptQueryOperator.cs
- SelectiveScrollingGrid.cs
- SynchronizationContext.cs
- UIElementPropertyUndoUnit.cs
- CacheForPrimitiveTypes.cs
- FilterFactory.cs
- SafePEFileHandle.cs
- SmtpTransport.cs
- X509Utils.cs
- ClusterRegistryConfigurationProvider.cs
- SeparatorAutomationPeer.cs
- WebPartConnectionsConnectVerb.cs
- KoreanCalendar.cs
- ReadOnlyPropertyMetadata.cs
- RemotingClientProxy.cs
- TableLayoutRowStyleCollection.cs