Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / RawKeyboardInputReport.cs / 1305600 / RawKeyboardInputReport.cs
using System; using System.Security; using System.Security.Permissions; using MS.Internal; using MS.Win32; using System.Windows; namespace System.Windows.Input { ////// The RawKeyboardInputReport class encapsulates the raw input /// provided from a keyboard. /// ////// 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. /// internal class RawKeyboardInputReport : InputReport { ////// Constructs ad instance of the RawKeyboardInputReport class. /// /// /// The input source that provided this input. /// /// /// The mode in which the input is being provided. /// /// /// The time when the input occured. /// /// /// The set of actions being reported. /// /// /// The scan code if a key is being reported. /// /// /// The true if a key is an extended key. /// /// /// The true if a key is a system key. /// /// /// The Win32 virtual key code if a key is being reported. /// /// /// Any extra information being provided along with the input. /// ////// Critical:This handles critical data in the form of PresentationSource and /// ExtraInformation /// TreatAsSafe:The data has demands on the property when someone tries to access it. /// [SecurityCritical,SecurityTreatAsSafe] public RawKeyboardInputReport( PresentationSource inputSource, InputMode mode, int timestamp, RawKeyboardActions actions, int scanCode, bool isExtendedKey, bool isSystemKey, int virtualKey, IntPtr extraInformation) : base(inputSource, InputType.Keyboard, mode, timestamp) { if (!IsValidRawKeyboardActions(actions)) throw new System.ComponentModel.InvalidEnumArgumentException("actions", (int)actions, typeof(RawKeyboardActions)); _actions = actions; _scanCode = scanCode; _isExtendedKey = isExtendedKey; _isSystemKey = isSystemKey; _virtualKey = virtualKey; _extraInformation = new SecurityCriticalData(extraInformation); } /// /// Read-only access to the set of actions that were reported. /// public RawKeyboardActions Actions {get {return _actions;}} ////// Read-only access to the scan code that was reported. /// public int ScanCode {get {return _scanCode;}} ////// Read-only access to the flag of an extended key. /// public bool IsExtendedKey {get {return _isExtendedKey;}} ////// Read-only access to the flag of a system key. /// public bool IsSystemKey {get {return _isSystemKey;}} ////// Read-only access to the virtual key that was reported. /// public int VirtualKey {get {return _virtualKey;}} ////// Read-only access to the extra information was provided along /// with the input. /// ////// Critical: This data was got under an elevation and is not safe to expose /// public IntPtr ExtraInformation { [SecurityCritical] get { return _extraInformation.Value; } } // IsValid Method for RawKeyboardActions. Relies on the enum being flags. internal static bool IsValidRawKeyboardActions(RawKeyboardActions actions) { if (((RawKeyboardActions.AttributesChanged | RawKeyboardActions.Activate | RawKeyboardActions.Deactivate | RawKeyboardActions.KeyDown | RawKeyboardActions.KeyUp) & actions) == actions) { if (!((((RawKeyboardActions.KeyUp | RawKeyboardActions.KeyDown) & actions) == (RawKeyboardActions.KeyUp | RawKeyboardActions.KeyDown)) || ((RawKeyboardActions.Deactivate & actions) == actions && RawKeyboardActions.Deactivate != actions))) { return true; } } return false; } private RawKeyboardActions _actions; private int _scanCode; private bool _isExtendedKey; private bool _isSystemKey; private int _virtualKey; ////// Critical: This information is got under an elevation and can latch onto /// any arbitrary data /// private SecurityCriticalData_extraInformation; } } // 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.Win32; using System.Windows; namespace System.Windows.Input { /// /// The RawKeyboardInputReport class encapsulates the raw input /// provided from a keyboard. /// ////// 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. /// internal class RawKeyboardInputReport : InputReport { ////// Constructs ad instance of the RawKeyboardInputReport class. /// /// /// The input source that provided this input. /// /// /// The mode in which the input is being provided. /// /// /// The time when the input occured. /// /// /// The set of actions being reported. /// /// /// The scan code if a key is being reported. /// /// /// The true if a key is an extended key. /// /// /// The true if a key is a system key. /// /// /// The Win32 virtual key code if a key is being reported. /// /// /// Any extra information being provided along with the input. /// ////// Critical:This handles critical data in the form of PresentationSource and /// ExtraInformation /// TreatAsSafe:The data has demands on the property when someone tries to access it. /// [SecurityCritical,SecurityTreatAsSafe] public RawKeyboardInputReport( PresentationSource inputSource, InputMode mode, int timestamp, RawKeyboardActions actions, int scanCode, bool isExtendedKey, bool isSystemKey, int virtualKey, IntPtr extraInformation) : base(inputSource, InputType.Keyboard, mode, timestamp) { if (!IsValidRawKeyboardActions(actions)) throw new System.ComponentModel.InvalidEnumArgumentException("actions", (int)actions, typeof(RawKeyboardActions)); _actions = actions; _scanCode = scanCode; _isExtendedKey = isExtendedKey; _isSystemKey = isSystemKey; _virtualKey = virtualKey; _extraInformation = new SecurityCriticalData(extraInformation); } /// /// Read-only access to the set of actions that were reported. /// public RawKeyboardActions Actions {get {return _actions;}} ////// Read-only access to the scan code that was reported. /// public int ScanCode {get {return _scanCode;}} ////// Read-only access to the flag of an extended key. /// public bool IsExtendedKey {get {return _isExtendedKey;}} ////// Read-only access to the flag of a system key. /// public bool IsSystemKey {get {return _isSystemKey;}} ////// Read-only access to the virtual key that was reported. /// public int VirtualKey {get {return _virtualKey;}} ////// Read-only access to the extra information was provided along /// with the input. /// ////// Critical: This data was got under an elevation and is not safe to expose /// public IntPtr ExtraInformation { [SecurityCritical] get { return _extraInformation.Value; } } // IsValid Method for RawKeyboardActions. Relies on the enum being flags. internal static bool IsValidRawKeyboardActions(RawKeyboardActions actions) { if (((RawKeyboardActions.AttributesChanged | RawKeyboardActions.Activate | RawKeyboardActions.Deactivate | RawKeyboardActions.KeyDown | RawKeyboardActions.KeyUp) & actions) == actions) { if (!((((RawKeyboardActions.KeyUp | RawKeyboardActions.KeyDown) & actions) == (RawKeyboardActions.KeyUp | RawKeyboardActions.KeyDown)) || ((RawKeyboardActions.Deactivate & actions) == actions && RawKeyboardActions.Deactivate != actions))) { return true; } } return false; } private RawKeyboardActions _actions; private int _scanCode; private bool _isExtendedKey; private bool _isSystemKey; private int _virtualKey; ////// Critical: This information is got under an elevation and can latch onto /// any arbitrary data /// 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
- MethodMessage.cs
- TrackPoint.cs
- ConnectionStringSettings.cs
- HttpDebugHandler.cs
- PtsCache.cs
- HttpRawResponse.cs
- DataGridViewIntLinkedList.cs
- BookmarkManager.cs
- OracleInternalConnection.cs
- ExtendedPropertyCollection.cs
- HttpPostedFileBase.cs
- ConditionalAttribute.cs
- sapiproxy.cs
- WpfXamlType.cs
- VirtualDirectoryMappingCollection.cs
- WebPermission.cs
- XmlSchemaComplexContent.cs
- EnumType.cs
- ImageField.cs
- PickBranch.cs
- AssociatedControlConverter.cs
- EntityKey.cs
- SharedPersonalizationStateInfo.cs
- WCFBuildProvider.cs
- TextClipboardData.cs
- Stream.cs
- Html32TextWriter.cs
- TreeNodeBinding.cs
- HMACMD5.cs
- AppDomainShutdownMonitor.cs
- SiteMapNodeItem.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- TreeViewEvent.cs
- ApplicationSecurityManager.cs
- ModelUIElement3D.cs
- NumberFunctions.cs
- PrintController.cs
- QueryReaderSettings.cs
- ReachPageContentSerializer.cs
- DnsElement.cs
- XmlSchemaDatatype.cs
- base64Transforms.cs
- FormsAuthenticationCredentials.cs
- DataTablePropertyDescriptor.cs
- TakeQueryOptionExpression.cs
- WebCategoryAttribute.cs
- Vector3DCollection.cs
- DrawingCollection.cs
- FixedSOMTableCell.cs
- FunctionUpdateCommand.cs
- DrawingBrush.cs
- CodeTypeReferenceExpression.cs
- NameSpaceExtractor.cs
- DrawListViewColumnHeaderEventArgs.cs
- CellTreeNodeVisitors.cs
- TouchPoint.cs
- BindingsCollection.cs
- COAUTHIDENTITY.cs
- Rect3D.cs
- XmlSchemaAnnotated.cs
- ImportCatalogPart.cs
- ExtenderControl.cs
- OLEDB_Util.cs
- OuterGlowBitmapEffect.cs
- DesignOnlyAttribute.cs
- DeferredReference.cs
- odbcmetadatacollectionnames.cs
- SimpleType.cs
- SingletonConnectionReader.cs
- InfoCardKeyedHashAlgorithm.cs
- HandledMouseEvent.cs
- IdleTimeoutMonitor.cs
- TextRange.cs
- ThreadExceptionDialog.cs
- ComponentFactoryHelpers.cs
- WindowsListViewItemCheckBox.cs
- TransactionFlowBindingElementImporter.cs
- EraserBehavior.cs
- SamlAuthorizationDecisionClaimResource.cs
- CallTemplateAction.cs
- DbConnectionClosed.cs
- ColumnMapTranslator.cs
- CapacityStreamGeometryContext.cs
- IChannel.cs
- EncoderParameters.cs
- WebPartTracker.cs
- LogStore.cs
- JournalEntryListConverter.cs
- EventMappingSettingsCollection.cs
- XmlSerializableWriter.cs
- ColumnHeaderConverter.cs
- ErrorInfoXmlDocument.cs
- SurrogateEncoder.cs
- AuthenticationService.cs
- Rijndael.cs
- FormViewRow.cs
- _NetRes.cs
- WindowsFormsHelpers.cs
- InfoCardMetadataExchangeClient.cs
- OpCodes.cs