Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ExpandSegmentCollection.cs
- DrawingImage.cs
- SecurityRuntime.cs
- SchemaSetCompiler.cs
- SamlAudienceRestrictionCondition.cs
- KeyboardEventArgs.cs
- LookupBindingPropertiesAttribute.cs
- DefaultIfEmptyQueryOperator.cs
- ping.cs
- WinFormsUtils.cs
- shaper.cs
- RuleRef.cs
- TransferMode.cs
- BatchParser.cs
- PreservationFileReader.cs
- SqlDataRecord.cs
- DictionarySectionHandler.cs
- ColumnMapTranslator.cs
- Floater.cs
- PromptStyle.cs
- ReadonlyMessageFilter.cs
- TextServicesCompartment.cs
- PasswordRecoveryDesigner.cs
- IdentifierCollection.cs
- SeekableReadStream.cs
- KeyGestureConverter.cs
- IdentityReference.cs
- TrueReadOnlyCollection.cs
- TypeConverter.cs
- PathFigureCollection.cs
- TextClipboardData.cs
- ScalarOps.cs
- DocumentPageHost.cs
- MessageHeaderDescriptionCollection.cs
- CodeDefaultValueExpression.cs
- NullExtension.cs
- SvcFileManager.cs
- ConnectionManagementSection.cs
- WebPartMinimizeVerb.cs
- FormCollection.cs
- FileUtil.cs
- CodeLabeledStatement.cs
- SecurityAlgorithmSuiteConverter.cs
- ShaderEffect.cs
- StackOverflowException.cs
- TypeGeneratedEventArgs.cs
- FontUnit.cs
- DesignTimeParseData.cs
- Utils.cs
- ISFTagAndGuidCache.cs
- DependencyPropertyHelper.cs
- RecipientInfo.cs
- Clause.cs
- RelationalExpressions.cs
- CollaborationHelperFunctions.cs
- StrokeCollection.cs
- PlatformNotSupportedException.cs
- DragDeltaEventArgs.cs
- CharacterHit.cs
- Misc.cs
- UrlPath.cs
- TableDetailsCollection.cs
- RefExpr.cs
- TaskFactory.cs
- InvalidPrinterException.cs
- BookmarkManager.cs
- UmAlQuraCalendar.cs
- DictionaryGlobals.cs
- WindowsListViewSubItem.cs
- WhiteSpaceTrimStringConverter.cs
- TextRunTypographyProperties.cs
- Triplet.cs
- IgnoreDataMemberAttribute.cs
- TraceInternal.cs
- OperatorExpressions.cs
- Cursor.cs
- DataBinder.cs
- ColumnHeaderConverter.cs
- MouseGesture.cs
- CodeNamespaceCollection.cs
- EntityDesignPluralizationHandler.cs
- ComponentCollection.cs
- View.cs
- ValidationErrorCollection.cs
- UIElement3DAutomationPeer.cs
- ComboBox.cs
- MultiDataTrigger.cs
- PriorityBinding.cs
- EntityKey.cs
- WindowsListViewGroupHelper.cs
- SortDescriptionCollection.cs
- VirtualizedContainerService.cs
- SelectionEditingBehavior.cs
- ActiveXHost.cs
- DataSourceCacheDurationConverter.cs
- PasswordTextContainer.cs
- QueryStringParameter.cs
- SqlDataRecord.cs
- SqlStatistics.cs
- EmptyStringExpandableObjectConverter.cs