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
- ToolStripSplitButton.cs
- Events.cs
- TreeIterators.cs
- ReversePositionQuery.cs
- SizeFConverter.cs
- SortFieldComparer.cs
- AsymmetricSignatureFormatter.cs
- DataBinder.cs
- WindowsNonControl.cs
- ConditionalWeakTable.cs
- FrameDimension.cs
- HtmlWindowCollection.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- SiteMapSection.cs
- CSharpCodeProvider.cs
- CookielessData.cs
- Cursor.cs
- StylusCollection.cs
- Cursor.cs
- AssemblyHelper.cs
- Crc32.cs
- PageParserFilter.cs
- CodeVariableReferenceExpression.cs
- ApplicationActivator.cs
- StreamReader.cs
- MruCache.cs
- CompilerError.cs
- SignatureGenerator.cs
- DataGridViewBindingCompleteEventArgs.cs
- ClientType.cs
- SqlDataReader.cs
- DataGridViewButtonColumn.cs
- ToolBarTray.cs
- OpenTypeLayoutCache.cs
- MenuDesigner.cs
- SerializationObjectManager.cs
- HttpCachePolicyElement.cs
- DrawToolTipEventArgs.cs
- BufferModeSettings.cs
- HtmlSelect.cs
- InputScopeAttribute.cs
- DotAtomReader.cs
- RoleService.cs
- ClaimComparer.cs
- RemotingException.cs
- FormClosingEvent.cs
- CaretElement.cs
- ListControlBuilder.cs
- ItemCollection.cs
- ProxyHelper.cs
- SiteOfOriginPart.cs
- UserPreference.cs
- AuthorizationContext.cs
- PolygonHotSpot.cs
- StrongTypingException.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- XmlElement.cs
- BoundField.cs
- XamlPoint3DCollectionSerializer.cs
- DateTimeParse.cs
- NonParentingControl.cs
- StateMachine.cs
- AsyncResult.cs
- ParameterToken.cs
- FolderBrowserDialog.cs
- ViewCellRelation.cs
- Image.cs
- SecurityPolicySection.cs
- X509Utils.cs
- ConfigurationPropertyCollection.cs
- CompilerGlobalScopeAttribute.cs
- WebPartEditorOkVerb.cs
- BackgroundFormatInfo.cs
- ACE.cs
- CustomMenuItemCollection.cs
- ServiceOperationListItem.cs
- TailCallAnalyzer.cs
- ImageAnimator.cs
- DynamicResourceExtension.cs
- Synchronization.cs
- MatrixConverter.cs
- entitydatasourceentitysetnameconverter.cs
- XmlDataImplementation.cs
- SynchronousChannel.cs
- SqlServices.cs
- EventRecord.cs
- TransactionsSectionGroup.cs
- EditingMode.cs
- BlockUIContainer.cs
- IPipelineRuntime.cs
- MimeBasePart.cs
- Scheduling.cs
- ConfigXmlElement.cs
- StringArrayConverter.cs
- XamlReaderHelper.cs
- FrameAutomationPeer.cs
- PassportAuthentication.cs
- ProtectedConfigurationProviderCollection.cs
- ListenerSessionConnectionReader.cs
- DocumentApplication.cs