Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / InputReport.cs / 1305600 / InputReport.cs
using System;
using System.Security;
using System.Security.Permissions;
using MS.Internal;
using MS.Internal.PresentationCore;
using MS.Win32;
using System.Windows;
namespace System.Windows.Input
{
///
/// The InputReport is an abstract base class for all input that is
/// reported to the InputManager.
///
///
/// 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 abstract class InputReport
{
///
/// Constructs ad instance of the InputReport class.
///
///
/// The type of input that is being reported.
///
///
/// The type of input that is being reported.
///
///
/// The mode in which the input is being reported.
///
///
/// The time when the input occured.
///
///
/// This handles critical data in the form of PresentationSource but there are demands on the
/// critical data
///
[SecurityCritical, SecurityTreatAsSafe]
protected InputReport(PresentationSource inputSource, InputType type, InputMode mode, int timestamp)
{
if (inputSource == null)
throw new ArgumentNullException("inputSource");
Validate_InputType( type );
Validate_InputMode( mode );
_inputSource= new SecurityCriticalData(inputSource);
_type = type;
_mode = mode;
_timestamp = timestamp;
}
///
/// Read-only access to the type of input source that reported input.
///
///
/// Critical: This element is treated as critical and is not ok to expose.
/// A link demand exists but that in itself is not adequate to safeguard this.
/// The critical exists to expose users.
///
public PresentationSource InputSource
{
[SecurityCritical]
get
{
return _inputSource.Value;
}
}
///
/// Read-only access to the type of input that was reported.
///
public InputType Type {get {return _type;}}
///
/// Read-only access to the mode in which the input was reported.
///
public InputMode Mode {get {return _mode;}}
///
/// Read-only access to the time when the input occured.
///
public int Timestamp {get {return _timestamp;}}
///
/// There is a proscription against using Enum.IsDefined(). (it is slow)
/// so we write these PRIVATE validate routines instead.
///
private void Validate_InputMode( InputMode mode )
{
switch( mode )
{
case InputMode.Foreground:
case InputMode.Sink:
break;
default:
throw new System.ComponentModel.InvalidEnumArgumentException("mode", (int)mode, typeof(InputMode));
}
}
///
/// There is a proscription against using Enum.IsDefined(). (it is slow)
/// so we write these PRIVATE validate routines instead.
///
private void Validate_InputType( InputType type )
{
switch( type )
{
case InputType.Keyboard:
case InputType.Mouse:
case InputType.Stylus:
case InputType.Hid:
case InputType.Text:
case InputType.Command:
break;
default:
throw new System.ComponentModel.InvalidEnumArgumentException("type", (int)type, typeof(InputType));
}
}
private SecurityCriticalData _inputSource;
private InputType _type;
private InputMode _mode;
private int _timestamp;
}
}
// 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
- ProviderBase.cs
- StringFreezingAttribute.cs
- GrammarBuilderPhrase.cs
- NamespaceQuery.cs
- WSTrust.cs
- ObjectFullSpanRewriter.cs
- CodeComment.cs
- PathFigureCollection.cs
- DataGridViewCellCancelEventArgs.cs
- SmiEventStream.cs
- IssuanceLicense.cs
- ActivityExecutionFilter.cs
- Point3DCollectionValueSerializer.cs
- PageWrapper.cs
- Stack.cs
- ScaleTransform3D.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- ZipIOExtraField.cs
- PropertyFilter.cs
- RTTrackingProfile.cs
- ExpressionPrinter.cs
- LinkedResource.cs
- GridSplitterAutomationPeer.cs
- EnumerableWrapperWeakToStrong.cs
- SerializationAttributes.cs
- XmlSerializerAssemblyAttribute.cs
- HtmlWindow.cs
- SecurityTokenResolver.cs
- ErrorWrapper.cs
- SoapCodeExporter.cs
- OleDbDataAdapter.cs
- VectorCollectionValueSerializer.cs
- TextProperties.cs
- AssemblyNameUtility.cs
- EventSinkHelperWriter.cs
- WebPartMenuStyle.cs
- EntityDataSourceSelectingEventArgs.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- UnaryNode.cs
- OpCopier.cs
- WindowHideOrCloseTracker.cs
- BaseParser.cs
- FormViewModeEventArgs.cs
- MouseDevice.cs
- DataServiceKeyAttribute.cs
- DocumentGrid.cs
- SchemaMerger.cs
- CallId.cs
- PointAnimationBase.cs
- DataGridItemCollection.cs
- ObjectContext.cs
- EntityContainerEntitySetDefiningQuery.cs
- HandlerBase.cs
- FontWeight.cs
- ConfigurationStrings.cs
- FusionWrap.cs
- ResourceManager.cs
- RowCache.cs
- SchemeSettingElementCollection.cs
- SecurityContext.cs
- PointHitTestResult.cs
- QuadraticBezierSegment.cs
- HttpResponseHeader.cs
- SizeConverter.cs
- UIPermission.cs
- HttpCacheVaryByContentEncodings.cs
- SchemaImporter.cs
- DataAccessor.cs
- DbConnectionPoolIdentity.cs
- TextEditor.cs
- AttributeData.cs
- BinHexEncoder.cs
- CompilerGlobalScopeAttribute.cs
- PositiveTimeSpanValidatorAttribute.cs
- TextContainer.cs
- DBConnectionString.cs
- BitmapEffectState.cs
- DbConnectionPoolOptions.cs
- XmlSerializerVersionAttribute.cs
- tibetanshape.cs
- FullTextLine.cs
- RecognizedWordUnit.cs
- BaseValidator.cs
- NamedPipeConnectionPool.cs
- MDIControlStrip.cs
- HtmlControl.cs
- DelegateTypeInfo.cs
- CollectionBuilder.cs
- SchemaMerger.cs
- ActivityTypeResolver.xaml.cs
- KeyInfo.cs
- GacUtil.cs
- EmptyImpersonationContext.cs
- DesignSurfaceEvent.cs
- Activation.cs
- SiteOfOriginPart.cs
- SystemIPInterfaceStatistics.cs
- MenuRendererClassic.cs
- SplineKeyFrames.cs
- QuotedStringWriteStateInfo.cs