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
- ExpressionWriter.cs
- UnknownMessageReceivedEventArgs.cs
- EventListenerClientSide.cs
- OptimalTextSource.cs
- HostedImpersonationContext.cs
- QueryParameter.cs
- CorrelationExtension.cs
- CheckBoxList.cs
- NetworkInformationException.cs
- RequestStatusBarUpdateEventArgs.cs
- DbModificationCommandTree.cs
- SqlDataSourceConfigureSortForm.cs
- EventDriven.cs
- OracleDataReader.cs
- IndentTextWriter.cs
- DependencyPropertyHelper.cs
- SqlXml.cs
- TransformedBitmap.cs
- ToolboxItemWrapper.cs
- KeyPullup.cs
- OpacityConverter.cs
- Error.cs
- CoTaskMemHandle.cs
- VirtualizedContainerService.cs
- VirtualPathProvider.cs
- DetailsViewRowCollection.cs
- GestureRecognitionResult.cs
- MemberDomainMap.cs
- EdmError.cs
- ValueProviderWrapper.cs
- TextServicesManager.cs
- BitmapPalettes.cs
- StylusSystemGestureEventArgs.cs
- ColorAnimation.cs
- Evaluator.cs
- BitmapFrameEncode.cs
- mediaclock.cs
- CounterSetInstance.cs
- DSASignatureDeformatter.cs
- CheckBoxFlatAdapter.cs
- ListItemCollection.cs
- FixedDocumentSequencePaginator.cs
- LinkArea.cs
- Profiler.cs
- NTAccount.cs
- KnownColorTable.cs
- DataGridViewCellCollection.cs
- ComplexPropertyEntry.cs
- FileUtil.cs
- PersonalizationEntry.cs
- ConnectionInterfaceCollection.cs
- SqlNodeAnnotation.cs
- PropertyGridView.cs
- TimeSpanStorage.cs
- BatchServiceHost.cs
- SystemFonts.cs
- RotateTransform.cs
- ResourceManager.cs
- ScrollBar.cs
- Misc.cs
- ImageButton.cs
- EnumBuilder.cs
- Encoder.cs
- AutomationProperties.cs
- ContainerUtilities.cs
- ViewgenContext.cs
- httpserverutility.cs
- SqlTypeSystemProvider.cs
- ScrollItemPattern.cs
- IListConverters.cs
- HttpsChannelListener.cs
- NativeMethods.cs
- COM2PropertyPageUITypeConverter.cs
- XmlDataCollection.cs
- Int32CollectionValueSerializer.cs
- NotFiniteNumberException.cs
- HttpListenerTimeoutManager.cs
- Typeface.cs
- MatrixConverter.cs
- FixedSOMContainer.cs
- VirtualDirectoryMappingCollection.cs
- dtdvalidator.cs
- Hashtable.cs
- KeyboardEventArgs.cs
- DefaultPrintController.cs
- SubpageParagraph.cs
- AccessDataSourceView.cs
- HostingEnvironmentWrapper.cs
- HeaderUtility.cs
- DllHostedComPlusServiceHost.cs
- AudioFormatConverter.cs
- FigureParaClient.cs
- ObjectItemCachedAssemblyLoader.cs
- ParameterElement.cs
- SpeakInfo.cs
- CodeIndexerExpression.cs
- DropDownButton.cs
- WebPartVerb.cs
- COMException.cs
- ToolTip.cs