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
- MethodExpr.cs
- EffectiveValueEntry.cs
- InstancePersistenceCommandException.cs
- OleAutBinder.cs
- WorkflowOperationBehavior.cs
- httpserverutility.cs
- ScrollItemPattern.cs
- StructuredTypeEmitter.cs
- SQLGuidStorage.cs
- ListSourceHelper.cs
- SqlCacheDependencyDatabaseCollection.cs
- ProjectionRewriter.cs
- CollectionChangedEventManager.cs
- RawStylusInput.cs
- ElementUtil.cs
- DurableServiceAttribute.cs
- ScrollChrome.cs
- EUCJPEncoding.cs
- ObjectSpanRewriter.cs
- InitializationEventAttribute.cs
- WebServiceErrorEvent.cs
- SerialErrors.cs
- DecimalKeyFrameCollection.cs
- TextRangeProviderWrapper.cs
- PaperSize.cs
- MimeWriter.cs
- AbsoluteQuery.cs
- ActiveXSerializer.cs
- ChildDocumentBlock.cs
- localization.cs
- BCryptSafeHandles.cs
- PermissionSet.cs
- DataGridViewCellPaintingEventArgs.cs
- CodeAttachEventStatement.cs
- AuthenticodeSignatureInformation.cs
- MeasureItemEvent.cs
- ConstantSlot.cs
- CreatingCookieEventArgs.cs
- InputElement.cs
- EpmCustomContentWriterNodeData.cs
- RuleRefElement.cs
- XmlSerializerSection.cs
- NGCSerializationManagerAsync.cs
- WindowHideOrCloseTracker.cs
- Rule.cs
- Panel.cs
- PerformanceCounterPermissionEntry.cs
- TextTreeUndoUnit.cs
- DeferredRunTextReference.cs
- FileClassifier.cs
- FileCodeGroup.cs
- ContactManager.cs
- ActivityScheduledRecord.cs
- ErrorTolerantObjectWriter.cs
- MetadataArtifactLoaderCompositeFile.cs
- TextEditorMouse.cs
- CommandField.cs
- Decimal.cs
- ExpressionBindingCollection.cs
- TemplatePartAttribute.cs
- SQLConvert.cs
- RotateTransform.cs
- SqlDataSourceSelectingEventArgs.cs
- IdentityValidationException.cs
- Size3D.cs
- WbemException.cs
- XmlCharCheckingReader.cs
- CryptoStream.cs
- TraceContextRecord.cs
- ByteConverter.cs
- SoapParser.cs
- EqualityComparer.cs
- TriggerCollection.cs
- TagPrefixInfo.cs
- FileChangeNotifier.cs
- ErasingStroke.cs
- ThrowOnMultipleAssignment.cs
- PagesSection.cs
- XmlDocumentSerializer.cs
- DataGridViewLayoutData.cs
- TemplateField.cs
- ThreadStartException.cs
- FormViewInsertEventArgs.cs
- DataConnectionHelper.cs
- MaskedTextBoxDesignerActionList.cs
- ToolBarTray.cs
- SqlOuterApplyReducer.cs
- OleDbError.cs
- DataPagerFieldItem.cs
- KeyTimeConverter.cs
- ScalarConstant.cs
- SingleConverter.cs
- Switch.cs
- AdapterUtil.cs
- CompilerParameters.cs
- ExtendedPropertyDescriptor.cs
- EndpointAddressElementBase.cs
- ViewgenContext.cs
- ListBox.cs
- OLEDB_Enum.cs