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
- GridViewDeleteEventArgs.cs
- ReflectionPermission.cs
- StoreAnnotationsMap.cs
- EnlistmentTraceIdentifier.cs
- TimelineCollection.cs
- HostingEnvironmentException.cs
- ConstructorBuilder.cs
- CollectionBase.cs
- SymbolType.cs
- precedingquery.cs
- Int32Storage.cs
- MouseButton.cs
- MailWriter.cs
- StreamReader.cs
- ArraySegment.cs
- ProxySimple.cs
- QueryStringParameter.cs
- DetailsViewPageEventArgs.cs
- SqlConnectionFactory.cs
- Button.cs
- TextStore.cs
- ChannelDispatcherCollection.cs
- WindowInteropHelper.cs
- BinaryParser.cs
- ValuePattern.cs
- Camera.cs
- LinearKeyFrames.cs
- FormViewInsertedEventArgs.cs
- MappingModelBuildProvider.cs
- XXXInfos.cs
- GuidTagList.cs
- GeometryCombineModeValidation.cs
- ScopelessEnumAttribute.cs
- FormViewModeEventArgs.cs
- SafeHandle.cs
- KeyValueConfigurationElement.cs
- ScrollChrome.cs
- PropertyKey.cs
- BooleanExpr.cs
- Typeface.cs
- FontResourceCache.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- DiscoveryClientElement.cs
- ColorConverter.cs
- SchemaTableColumn.cs
- OperandQuery.cs
- XPathDocument.cs
- EmbeddedMailObjectCollectionEditor.cs
- ArrayList.cs
- ProcessModule.cs
- RadioButtonStandardAdapter.cs
- ResourceDisplayNameAttribute.cs
- ContextMenuService.cs
- ProcessThreadCollection.cs
- SliderAutomationPeer.cs
- AccessedThroughPropertyAttribute.cs
- UrlUtility.cs
- ToolStripDropDownMenu.cs
- UniqueIdentifierService.cs
- EntityReference.cs
- AdRotator.cs
- EncoderReplacementFallback.cs
- SqlXml.cs
- ObjectDataSourceMethodEventArgs.cs
- documentation.cs
- MailMessageEventArgs.cs
- SizeValueSerializer.cs
- ListBindingConverter.cs
- XmlDataSource.cs
- ProcessThread.cs
- DataPagerCommandEventArgs.cs
- InputMethodStateChangeEventArgs.cs
- CompoundFileReference.cs
- NativeMethodsCLR.cs
- HijriCalendar.cs
- CodeBinaryOperatorExpression.cs
- ParentQuery.cs
- CodeExporter.cs
- SchemaEntity.cs
- ResourceReader.cs
- PreDigestedSignedInfo.cs
- DbConnectionHelper.cs
- EastAsianLunisolarCalendar.cs
- SqlDataReaderSmi.cs
- DataGridTable.cs
- VisualBasicDesignerHelper.cs
- ImportOptions.cs
- PageClientProxyGenerator.cs
- FocusManager.cs
- DESCryptoServiceProvider.cs
- TerminatorSinks.cs
- SQLMoneyStorage.cs
- ButtonBaseAutomationPeer.cs
- AlignmentYValidation.cs
- ClientConfigurationSystem.cs
- SQLCharsStorage.cs
- ViewStateException.cs
- SymbolType.cs
- ToolStripButton.cs
- FormViewDeleteEventArgs.cs