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
- ArraySubsetEnumerator.cs
- MetadataExchangeBindings.cs
- TypeContext.cs
- SuppressMergeCheckAttribute.cs
- ClassGenerator.cs
- GridViewHeaderRowPresenter.cs
- ValidatingReaderNodeData.cs
- Avt.cs
- SplineKeyFrames.cs
- DynamicILGenerator.cs
- ResourceCategoryAttribute.cs
- XmlSchemaType.cs
- ServiceDescriptions.cs
- ManagementDateTime.cs
- BitmapEffectInput.cs
- TraversalRequest.cs
- BitmapImage.cs
- MetadataArtifactLoaderCompositeFile.cs
- BindingElementExtensionElement.cs
- SqlBulkCopy.cs
- DataGridViewAutoSizeModeEventArgs.cs
- DesignerAttributeInfo.cs
- ExpandedWrapper.cs
- ClientTarget.cs
- HashAlgorithm.cs
- Cloud.cs
- ExtentKey.cs
- GifBitmapEncoder.cs
- RadioButtonList.cs
- TableParagraph.cs
- TransactionException.cs
- _ScatterGatherBuffers.cs
- TypeGeneratedEventArgs.cs
- LinearGradientBrush.cs
- DataRowView.cs
- XamlTreeBuilderBamlRecordWriter.cs
- Tokenizer.cs
- TemplateField.cs
- fixedPageContentExtractor.cs
- PostBackTrigger.cs
- ToolStripOverflowButton.cs
- Substitution.cs
- _SSPISessionCache.cs
- unsafenativemethodsother.cs
- ToolboxBitmapAttribute.cs
- GenericAuthenticationEventArgs.cs
- EncodingDataItem.cs
- ToolStripTextBox.cs
- WebPartConnectionsCancelVerb.cs
- AutomationAttributeInfo.cs
- AssemblyInfo.cs
- SchemaSetCompiler.cs
- ConfigXmlSignificantWhitespace.cs
- basenumberconverter.cs
- CompressionTracing.cs
- EnumValidator.cs
- GridViewColumnCollection.cs
- UInt16.cs
- HotSpotCollection.cs
- AnnotationStore.cs
- _CookieModule.cs
- _NativeSSPI.cs
- ValueType.cs
- querybuilder.cs
- FloaterBaseParaClient.cs
- StreamResourceInfo.cs
- VisemeEventArgs.cs
- Delay.cs
- IndependentlyAnimatedPropertyMetadata.cs
- XmlIncludeAttribute.cs
- InvalidPropValue.cs
- AccessText.cs
- RegexCaptureCollection.cs
- GACMembershipCondition.cs
- PointCollectionConverter.cs
- C14NUtil.cs
- SelectionWordBreaker.cs
- TableCellAutomationPeer.cs
- TableChangeProcessor.cs
- mongolianshape.cs
- EntityStoreSchemaGenerator.cs
- LinqExpressionNormalizer.cs
- HttpTransportSecurityElement.cs
- MobileSysDescriptionAttribute.cs
- XmlImplementation.cs
- wmiprovider.cs
- TraceContextEventArgs.cs
- WSSecureConversationFeb2005.cs
- QilTargetType.cs
- ViewBox.cs
- GeneratedCodeAttribute.cs
- EntityContainerRelationshipSetEnd.cs
- ComponentGlyph.cs
- WebPart.cs
- StylusDevice.cs
- Setter.cs
- PassportAuthentication.cs
- DataGridColumnCollection.cs
- IPeerNeighbor.cs
- WebPartVerbCollection.cs