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
- EdmSchemaError.cs
- XmlUrlResolver.cs
- ComplexBindingPropertiesAttribute.cs
- TextServicesHost.cs
- SelectionPatternIdentifiers.cs
- ChtmlLinkAdapter.cs
- DrawingGroup.cs
- Rect.cs
- WebPartEditVerb.cs
- TypeTypeConverter.cs
- GAC.cs
- SqlTypeConverter.cs
- Version.cs
- PageParser.cs
- BaseConfigurationRecord.cs
- UriTemplateDispatchFormatter.cs
- CommonGetThemePartSize.cs
- NavigationPropertyAccessor.cs
- OleDbReferenceCollection.cs
- XPathParser.cs
- NumberFormatter.cs
- TransformConverter.cs
- NotImplementedException.cs
- EventRoute.cs
- MemberCollection.cs
- ServiceDesigner.cs
- RadialGradientBrush.cs
- HttpStaticObjectsCollectionWrapper.cs
- TextTreeInsertUndoUnit.cs
- OleDbRowUpdatedEvent.cs
- DesignerToolboxInfo.cs
- xdrvalidator.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- CompositeClientFormatter.cs
- ControlIdConverter.cs
- SortedDictionary.cs
- InkCollectionBehavior.cs
- UnsignedPublishLicense.cs
- tooltip.cs
- XsdCachingReader.cs
- XmlSchemaSimpleTypeList.cs
- ActivityExecutorSurrogate.cs
- WindowProviderWrapper.cs
- DataReceivedEventArgs.cs
- DependentTransaction.cs
- XmlExpressionDumper.cs
- UserControlBuildProvider.cs
- SoapClientProtocol.cs
- BitmapFrameEncode.cs
- WindowsBrush.cs
- XmlElementElement.cs
- Subtree.cs
- DataObjectAttribute.cs
- ControlParameter.cs
- LinqDataSourceContextData.cs
- Control.cs
- LocatorPartList.cs
- SafeNativeMethods.cs
- JsonXmlDataContract.cs
- WebPartActionVerb.cs
- SecurityState.cs
- UIHelper.cs
- PrintDialogDesigner.cs
- propertyentry.cs
- QueueException.cs
- WebPartDeleteVerb.cs
- DataGridViewAddColumnDialog.cs
- DiagnosticTraceSource.cs
- RegexInterpreter.cs
- RadioButtonList.cs
- FilteredAttributeCollection.cs
- SafeLocalMemHandle.cs
- DataGridViewCellStyleEditor.cs
- GenerateHelper.cs
- ColumnResult.cs
- TimelineClockCollection.cs
- HostedHttpTransportManager.cs
- Point.cs
- DirectoryGroupQuery.cs
- SymbolType.cs
- FileSecurity.cs
- BodyGlyph.cs
- InvalidDataException.cs
- TemplateModeChangedEventArgs.cs
- CurrentTimeZone.cs
- ViewKeyConstraint.cs
- ParagraphVisual.cs
- PrivateFontCollection.cs
- ManagementQuery.cs
- EventLogInformation.cs
- DataListItemEventArgs.cs
- PathGradientBrush.cs
- HuffmanTree.cs
- Exceptions.cs
- SupportingTokenBindingElement.cs
- EventTrigger.cs
- AuthorizationRuleCollection.cs
- ThicknessConverter.cs
- Hex.cs
- XamlRtfConverter.cs