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
- Visitor.cs
- SoapReflectionImporter.cs
- SamlNameIdentifierClaimResource.cs
- Point3DIndependentAnimationStorage.cs
- AssemblyInfo.cs
- FormsAuthenticationCredentials.cs
- ToolboxComponentsCreatedEventArgs.cs
- DrawingBrush.cs
- DesignerVerb.cs
- FlowDocumentReader.cs
- TableLayout.cs
- RoleManagerSection.cs
- ImageFormatConverter.cs
- GridErrorDlg.cs
- EventLogSession.cs
- Bezier.cs
- ResourceKey.cs
- Screen.cs
- CustomError.cs
- LocatorGroup.cs
- TextTreeText.cs
- TakeQueryOptionExpression.cs
- CharEntityEncoderFallback.cs
- SiteMapPath.cs
- SqlParameter.cs
- ControlSerializer.cs
- RequestResizeEvent.cs
- Solver.cs
- QueryInterceptorAttribute.cs
- BindingContext.cs
- ZipPackagePart.cs
- TextDecorationCollection.cs
- RepeaterCommandEventArgs.cs
- QueueProcessor.cs
- SingleTagSectionHandler.cs
- ClientSettingsProvider.cs
- ValueTable.cs
- XmlKeywords.cs
- QilXmlWriter.cs
- TextSelection.cs
- ControlIdConverter.cs
- HandleRef.cs
- GetWinFXPath.cs
- IntSecurity.cs
- FixedDSBuilder.cs
- IList.cs
- SynchronizedPool.cs
- TextRangeProviderWrapper.cs
- documentation.cs
- cookiecontainer.cs
- DSACryptoServiceProvider.cs
- TypeInfo.cs
- StandardMenuStripVerb.cs
- DynamicResourceExtension.cs
- BrowserDefinition.cs
- BulletedListEventArgs.cs
- X509CertificateValidator.cs
- TextDecorationCollection.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- SourceChangedEventArgs.cs
- MexNamedPipeBindingElement.cs
- CompiledXpathExpr.cs
- RightsManagementPermission.cs
- SchemaMerger.cs
- SqlConnectionStringBuilder.cs
- Marshal.cs
- CompilationUnit.cs
- Context.cs
- BaseProcessor.cs
- HtmlInputText.cs
- CopyAction.cs
- UInt64Storage.cs
- XmlLanguage.cs
- DetailsViewInsertEventArgs.cs
- ApplicationGesture.cs
- DropDownButton.cs
- ArraySegment.cs
- CFStream.cs
- DataBinding.cs
- AssignDesigner.xaml.cs
- TextElementEnumerator.cs
- PathFigure.cs
- SqlStatistics.cs
- SerialErrors.cs
- SecurityPermission.cs
- CreatingCookieEventArgs.cs
- TextRangeBase.cs
- ProxyWebPartManagerDesigner.cs
- CodeBinaryOperatorExpression.cs
- Message.cs
- QueryInterceptorAttribute.cs
- EmissiveMaterial.cs
- RepeaterItemCollection.cs
- bidPrivateBase.cs
- DashStyle.cs
- TokenDescriptor.cs
- Util.cs
- RuntimeCompatibilityAttribute.cs
- AttributeParameterInfo.cs
- DatagridviewDisplayedBandsData.cs