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 / InputReport.cs / 1 / 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.
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
- PerformanceCounterManager.cs
- BasicHttpSecurityMode.cs
- MultiSelectRootGridEntry.cs
- AttributeConverter.cs
- XmlSchemaAny.cs
- ImpersonateTokenRef.cs
- AjaxFrameworkAssemblyAttribute.cs
- NamedPipeChannelFactory.cs
- SingleObjectCollection.cs
- NullableIntAverageAggregationOperator.cs
- TextFormatter.cs
- AssemblyCacheEntry.cs
- SessionEndingEventArgs.cs
- XmlSerializerNamespaces.cs
- DiscoveryClient.cs
- ListBoxItemWrapperAutomationPeer.cs
- UITypeEditor.cs
- SmtpNetworkElement.cs
- WebFormDesignerActionService.cs
- TypeInfo.cs
- codemethodreferenceexpression.cs
- QilReplaceVisitor.cs
- FtpRequestCacheValidator.cs
- KeyConverter.cs
- ExpressionEditorAttribute.cs
- EntityDataSourceDesignerHelper.cs
- BufferedReadStream.cs
- RepeatBehavior.cs
- CorePropertiesFilter.cs
- SHA512CryptoServiceProvider.cs
- IISUnsafeMethods.cs
- WrappedIUnknown.cs
- Model3DGroup.cs
- WebPartUtil.cs
- RawStylusInputCustomData.cs
- MDIWindowDialog.cs
- XD.cs
- ArgumentOutOfRangeException.cs
- SortKey.cs
- RuntimeCompatibilityAttribute.cs
- UnsafeNativeMethods.cs
- CodeEventReferenceExpression.cs
- RectAnimationBase.cs
- Point4D.cs
- CheckedListBox.cs
- DynamicAttribute.cs
- EqualityComparer.cs
- DataControlField.cs
- SecurityAlgorithmSuiteConverter.cs
- shaperfactoryquerycachekey.cs
- CollectionContainer.cs
- TableLayoutSettings.cs
- BitmapDecoder.cs
- DataListComponentEditor.cs
- QueryOperator.cs
- NativeMethodsCLR.cs
- MonitoringDescriptionAttribute.cs
- HttpDictionary.cs
- ArrayWithOffset.cs
- StringConverter.cs
- XmlSchemaCompilationSettings.cs
- BamlTreeMap.cs
- WebPartsPersonalizationAuthorization.cs
- ControlCachePolicy.cs
- ArglessEventHandlerProxy.cs
- RightsManagementPermission.cs
- ErrorHandler.cs
- FilterQuery.cs
- Assembly.cs
- DrawingServices.cs
- EntityDataSourceWizardForm.cs
- XComponentModel.cs
- ParsedAttributeCollection.cs
- TabControlAutomationPeer.cs
- SoapReflectionImporter.cs
- WebSysDisplayNameAttribute.cs
- updateconfighost.cs
- DoubleAnimationUsingKeyFrames.cs
- Vars.cs
- ParseChildrenAsPropertiesAttribute.cs
- OpenTypeLayout.cs
- ButtonRenderer.cs
- ObjectDataSourceFilteringEventArgs.cs
- NavigationFailedEventArgs.cs
- MediaTimeline.cs
- XmlDocumentFragment.cs
- TextEditorParagraphs.cs
- PathData.cs
- TraceEventCache.cs
- DrawListViewSubItemEventArgs.cs
- XmlDictionaryReader.cs
- ButtonChrome.cs
- HorizontalAlignConverter.cs
- Variable.cs
- AuthenticationService.cs
- CellConstant.cs
- ObjectDataSourceView.cs
- WebBrowserEvent.cs
- ContainerAction.cs
- SingleKeyFrameCollection.cs