Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / StagingAreaInputItem.cs / 1407647 / StagingAreaInputItem.cs
using System; using System.Collections; using System.Security.Permissions; using System.Security; namespace System.Windows.Input { ////// This class encapsulates an input event while it is being /// processed by the input manager. /// ////// This class just provides the dictionary-based storage for /// all of the listeners of the various input manager events. /// public class StagingAreaInputItem { // Only we can make these. internal StagingAreaInputItem(bool isMarker) { _isMarker = isMarker; } // For performace reasons, we try to reuse these event args. // Allow an existing item to be promoted by keeping the existing dictionary. internal void Reset(InputEventArgs input, StagingAreaInputItem promote) { _input = input; if(promote != null && promote._dictionary != null) { // _dictionary = (Hashtable) promote._dictionary.Clone(); } else { if(_dictionary != null) { _dictionary.Clear(); } else { _dictionary = new Hashtable(); } } } ////// Returns the input event. /// ////// Callers must have UIPermission(PermissionState.Unrestricted) to call this API. /// ////// Defense In Depth - even if this leaks out, we demand here. /// Critical - Performs a Link Demand. The reason these methods are marked critical /// is that security transparent code should not be responsible for verifying /// the security of an operation, and therefore should not be protected from partial /// trust callers with LinkDemands. /// public InputEventArgs Input { [SecurityCritical] [UIPermissionAttribute(SecurityAction.LinkDemand,Unrestricted=true)] get {return _input;} } ////// Provides storage for arbitrary data needed during the /// processing of this input event. /// /// /// An arbitrary key for the data. This cannot be null. /// ////// The data previously set for this key, or null. /// public object GetData(object key) { return _dictionary[key]; } ////// Provides storage for arbitrary data needed during the /// processing of this input event. /// /// /// An arbitrary key for the data. This cannot be null. /// /// /// The data to set for this key. This can be null. /// ////// Callers must have UIPermission(PermissionState.Unrestricted) to call this API. /// ////// Defense In Depth - even if this leaks out, we demand here. /// Critical - Performs a Link Demand. The reason these methods are marked critical /// is that security transparent code should not be responsible for verifying /// the security of an operation, and therefore should not be protected from partial /// trust callers with LinkDemands. /// [SecurityCritical] [UIPermissionAttribute(SecurityAction.LinkDemand,Unrestricted=true)] public void SetData(object key, object value) { _dictionary[key] = value; } internal bool IsMarker {get {return _isMarker;}} private bool _isMarker; private InputEventArgs _input; private Hashtable _dictionary; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections; using System.Security.Permissions; using System.Security; namespace System.Windows.Input { ////// This class encapsulates an input event while it is being /// processed by the input manager. /// ////// This class just provides the dictionary-based storage for /// all of the listeners of the various input manager events. /// public class StagingAreaInputItem { // Only we can make these. internal StagingAreaInputItem(bool isMarker) { _isMarker = isMarker; } // For performace reasons, we try to reuse these event args. // Allow an existing item to be promoted by keeping the existing dictionary. internal void Reset(InputEventArgs input, StagingAreaInputItem promote) { _input = input; if(promote != null && promote._dictionary != null) { // _dictionary = (Hashtable) promote._dictionary.Clone(); } else { if(_dictionary != null) { _dictionary.Clear(); } else { _dictionary = new Hashtable(); } } } ////// Returns the input event. /// ////// Callers must have UIPermission(PermissionState.Unrestricted) to call this API. /// ////// Defense In Depth - even if this leaks out, we demand here. /// Critical - Performs a Link Demand. The reason these methods are marked critical /// is that security transparent code should not be responsible for verifying /// the security of an operation, and therefore should not be protected from partial /// trust callers with LinkDemands. /// public InputEventArgs Input { [SecurityCritical] [UIPermissionAttribute(SecurityAction.LinkDemand,Unrestricted=true)] get {return _input;} } ////// Provides storage for arbitrary data needed during the /// processing of this input event. /// /// /// An arbitrary key for the data. This cannot be null. /// ////// The data previously set for this key, or null. /// public object GetData(object key) { return _dictionary[key]; } ////// Provides storage for arbitrary data needed during the /// processing of this input event. /// /// /// An arbitrary key for the data. This cannot be null. /// /// /// The data to set for this key. This can be null. /// ////// Callers must have UIPermission(PermissionState.Unrestricted) to call this API. /// ////// Defense In Depth - even if this leaks out, we demand here. /// Critical - Performs a Link Demand. The reason these methods are marked critical /// is that security transparent code should not be responsible for verifying /// the security of an operation, and therefore should not be protected from partial /// trust callers with LinkDemands. /// [SecurityCritical] [UIPermissionAttribute(SecurityAction.LinkDemand,Unrestricted=true)] public void SetData(object key, object value) { _dictionary[key] = value; } internal bool IsMarker {get {return _isMarker;}} private bool _isMarker; private InputEventArgs _input; private Hashtable _dictionary; } } // 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
- QfeChecker.cs
- Pts.cs
- VariantWrapper.cs
- Menu.cs
- WebBrowserSiteBase.cs
- FormatterConverter.cs
- ProviderConnectionPoint.cs
- _ProxyRegBlob.cs
- Run.cs
- HTTP_SERVICE_CONFIG_URLACL_KEY.cs
- SqlDependency.cs
- SqlBooleanizer.cs
- RSAPKCS1KeyExchangeFormatter.cs
- StrokeCollectionConverter.cs
- DatatypeImplementation.cs
- BitmapEffectDrawing.cs
- XmlAnyAttributeAttribute.cs
- RoleManagerSection.cs
- TimeoutConverter.cs
- ContentPosition.cs
- DataListItemEventArgs.cs
- XmlDataContract.cs
- TypeForwardedFromAttribute.cs
- AssociationTypeEmitter.cs
- DataGridViewCheckBoxColumn.cs
- ToolBarButton.cs
- RawKeyboardInputReport.cs
- Operand.cs
- XmlNodeComparer.cs
- CalendarDay.cs
- TraceRecord.cs
- HandlerFactoryCache.cs
- DropShadowEffect.cs
- ExtentCqlBlock.cs
- PermissionSet.cs
- ObjectDataSource.cs
- DataTrigger.cs
- ImpersonateTokenRef.cs
- RtfNavigator.cs
- StructuredCompositeActivityDesigner.cs
- ChildrenQuery.cs
- SrgsRuleRef.cs
- VarRefManager.cs
- WebEncodingValidator.cs
- PocoPropertyAccessorStrategy.cs
- RightsManagementInformation.cs
- ControlParameter.cs
- ToolbarAUtomationPeer.cs
- CryptoHelper.cs
- NegationPusher.cs
- OdbcInfoMessageEvent.cs
- ImageInfo.cs
- ReadOnlyCollectionBase.cs
- MetadataSerializer.cs
- ActivityValidator.cs
- ToolboxItemImageConverter.cs
- BaseTemplateCodeDomTreeGenerator.cs
- EqualityComparer.cs
- LifetimeServices.cs
- TextEditorLists.cs
- AssemblyInfo.cs
- VirtualDirectoryMapping.cs
- AsymmetricSignatureDeformatter.cs
- WindowPattern.cs
- RotateTransform3D.cs
- FileDialog.cs
- SqlServer2KCompatibilityAnnotation.cs
- VBIdentifierName.cs
- DbDataRecord.cs
- QilPatternVisitor.cs
- tibetanshape.cs
- MemoryPressure.cs
- storagemappingitemcollection.viewdictionary.cs
- PropertyGeneratedEventArgs.cs
- NetworkInterface.cs
- PartialCachingControl.cs
- BitStream.cs
- SoapElementAttribute.cs
- PolyQuadraticBezierSegment.cs
- CompModSwitches.cs
- XmlSecureResolver.cs
- MatcherBuilder.cs
- DecimalConverter.cs
- AnonymousIdentificationSection.cs
- ExceptionWrapper.cs
- SizeAnimation.cs
- UnmanagedMemoryStream.cs
- CompilerInfo.cs
- CompilerInfo.cs
- CapacityStreamGeometryContext.cs
- QilStrConcatenator.cs
- XslException.cs
- PropertyInfoSet.cs
- DataGridViewToolTip.cs
- TextBlock.cs
- NetworkInterface.cs
- ObjectManager.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- WinInetCache.cs
- DoubleUtil.cs