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
- DbgUtil.cs
- Visual.cs
- ScriptResourceInfo.cs
- Native.cs
- UiaCoreApi.cs
- FaultHandlingFilter.cs
- AdministrationHelpers.cs
- StatusBar.cs
- UniformGrid.cs
- RegexMatchCollection.cs
- FontFamily.cs
- SqlPersonalizationProvider.cs
- StandardOleMarshalObject.cs
- Timeline.cs
- HttpContextWrapper.cs
- ManualResetEvent.cs
- InstanceDataCollection.cs
- CryptoKeySecurity.cs
- DefaultBindingPropertyAttribute.cs
- GCHandleCookieTable.cs
- PresentationSource.cs
- DynamicMethod.cs
- ButtonChrome.cs
- TaiwanLunisolarCalendar.cs
- PointAnimation.cs
- TextEffectResolver.cs
- MarkupWriter.cs
- ColumnResizeAdorner.cs
- CapabilitiesRule.cs
- InkCanvasSelection.cs
- FreezableOperations.cs
- HandlerWithFactory.cs
- SchemaTableColumn.cs
- SourceChangedEventArgs.cs
- UriParserTemplates.cs
- TrackingValidationObjectDictionary.cs
- JpegBitmapEncoder.cs
- CodeStatement.cs
- ToolStripMenuItem.cs
- InstanceNotReadyException.cs
- IndexedString.cs
- FormViewInsertedEventArgs.cs
- ConfigXmlText.cs
- SystemException.cs
- DropDownList.cs
- BidOverLoads.cs
- MSHTMLHostUtil.cs
- securitycriticaldata.cs
- TextParaLineResult.cs
- basenumberconverter.cs
- QueryTask.cs
- QueryExecutionOption.cs
- BitmapEffectrendercontext.cs
- CodeNamespaceImport.cs
- SequentialOutput.cs
- CachedTypeface.cs
- ConfigurationManagerHelper.cs
- graph.cs
- WorkflowInstanceTerminatedRecord.cs
- CornerRadiusConverter.cs
- formatter.cs
- CompoundFileIOPermission.cs
- OutputCacheProfile.cs
- XmlnsCache.cs
- MaterialGroup.cs
- State.cs
- BaseDataListPage.cs
- LocalizationParserHooks.cs
- ValueUtilsSmi.cs
- safex509handles.cs
- MouseDevice.cs
- ServiceRouteHandler.cs
- ClientBuildManagerCallback.cs
- TextEditorTyping.cs
- XmlDataLoader.cs
- BinHexDecoder.cs
- FilePrompt.cs
- SystemWebCachingSectionGroup.cs
- RNGCryptoServiceProvider.cs
- HScrollProperties.cs
- OleDbRowUpdatingEvent.cs
- GACIdentityPermission.cs
- DataGridViewCellPaintingEventArgs.cs
- SymDocumentType.cs
- ContentType.cs
- DecimalConstantAttribute.cs
- HierarchicalDataSourceControl.cs
- MachineKeySection.cs
- ToolBarButtonClickEvent.cs
- Config.cs
- ColorTypeConverter.cs
- MailFileEditor.cs
- ProtocolsSection.cs
- RequestDescription.cs
- PresentationAppDomainManager.cs
- TypeElement.cs
- UntrustedRecipientException.cs
- StorageEntitySetMapping.cs
- ObjectViewFactory.cs
- MaskDescriptors.cs