Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / RoutedEventHandlerInfo.cs / 1 / RoutedEventHandlerInfo.cs
using System; namespace System.Windows { ////// Container for handler instance and other /// invocation preferences for this handler /// instance /// ////// RoutedEventHandlerInfo constitutes the /// handler instance and flag that indicates if /// or not this handler must be invoked for /// already handled events //CASRemoval:[StrongNameIdentityPermission(SecurityAction.LinkDemand, PublicKey = Microsoft.Internal.BuildInfo.WCP_PUBLIC_KEY_STRING)] public struct RoutedEventHandlerInfo { #region Construction ////// /// /// This class needs to be public because it is /// used by ContentElement in the Framework /// to store Instance EventHandlers /// /// Construtor for RoutedEventHandlerInfo /// /// /// Non-null handler /// /// /// Flag that indicates if or not the handler must /// be invoked for already handled events /// internal RoutedEventHandlerInfo(Delegate handler, bool handledEventsToo) { _handler = handler; _handledEventsToo = handledEventsToo; } #endregion Construction #region Operations ////// Returns associated handler instance /// public Delegate Handler { get {return _handler;} } ////// Returns HandledEventsToo Flag /// public bool InvokeHandledEventsToo { get {return _handledEventsToo;} } // Invokes handler instance as per specified // invocation preferences internal void InvokeHandler(object target, RoutedEventArgs routedEventArgs) { if ((routedEventArgs.Handled == false) || (_handledEventsToo == true)) { if (_handler is RoutedEventHandler) { // Generic RoutedEventHandler is called directly here since // we don't need the InvokeEventHandler override to cast to // the proper type - we know what it is. ((RoutedEventHandler)_handler)(target, routedEventArgs); } else { // NOTE: Cannot call protected method InvokeEventHandler directly routedEventArgs.InvokeHandler(_handler, target); } } } ////// Is the given object equivalent to the current one /// public override bool Equals(object obj) { if (obj == null || !(obj is RoutedEventHandlerInfo)) return false; return Equals((RoutedEventHandlerInfo)obj); } ////// Is the given RoutedEventHandlerInfo equals the current /// public bool Equals(RoutedEventHandlerInfo handlerInfo) { return _handler == handlerInfo._handler && _handledEventsToo == handlerInfo._handledEventsToo; } ////// Serves as a hash function for a particular type, suitable for use in /// hashing algorithms and data structures like a hash table /// public override int GetHashCode() { return base.GetHashCode(); } ////// Equals operator overload /// public static bool operator== (RoutedEventHandlerInfo handlerInfo1, RoutedEventHandlerInfo handlerInfo2) { return handlerInfo1.Equals(handlerInfo2); } ////// NotEquals operator overload /// public static bool operator!= (RoutedEventHandlerInfo handlerInfo1, RoutedEventHandlerInfo handlerInfo2) { return !handlerInfo1.Equals(handlerInfo2); } ////// Cleanup all the references within the data /// /* Commented out to avoid "uncalled private code" fxcop violation internal void Clear() { _handler = null; _handledEventsToo = false; } */ #endregion Operations #region Data private Delegate _handler; private bool _handledEventsToo; #endregion Data } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; namespace System.Windows { ////// Container for handler instance and other /// invocation preferences for this handler /// instance /// ////// RoutedEventHandlerInfo constitutes the /// handler instance and flag that indicates if /// or not this handler must be invoked for /// already handled events //CASRemoval:[StrongNameIdentityPermission(SecurityAction.LinkDemand, PublicKey = Microsoft.Internal.BuildInfo.WCP_PUBLIC_KEY_STRING)] public struct RoutedEventHandlerInfo { #region Construction ////// /// /// This class needs to be public because it is /// used by ContentElement in the Framework /// to store Instance EventHandlers /// /// Construtor for RoutedEventHandlerInfo /// /// /// Non-null handler /// /// /// Flag that indicates if or not the handler must /// be invoked for already handled events /// internal RoutedEventHandlerInfo(Delegate handler, bool handledEventsToo) { _handler = handler; _handledEventsToo = handledEventsToo; } #endregion Construction #region Operations ////// Returns associated handler instance /// public Delegate Handler { get {return _handler;} } ////// Returns HandledEventsToo Flag /// public bool InvokeHandledEventsToo { get {return _handledEventsToo;} } // Invokes handler instance as per specified // invocation preferences internal void InvokeHandler(object target, RoutedEventArgs routedEventArgs) { if ((routedEventArgs.Handled == false) || (_handledEventsToo == true)) { if (_handler is RoutedEventHandler) { // Generic RoutedEventHandler is called directly here since // we don't need the InvokeEventHandler override to cast to // the proper type - we know what it is. ((RoutedEventHandler)_handler)(target, routedEventArgs); } else { // NOTE: Cannot call protected method InvokeEventHandler directly routedEventArgs.InvokeHandler(_handler, target); } } } ////// Is the given object equivalent to the current one /// public override bool Equals(object obj) { if (obj == null || !(obj is RoutedEventHandlerInfo)) return false; return Equals((RoutedEventHandlerInfo)obj); } ////// Is the given RoutedEventHandlerInfo equals the current /// public bool Equals(RoutedEventHandlerInfo handlerInfo) { return _handler == handlerInfo._handler && _handledEventsToo == handlerInfo._handledEventsToo; } ////// Serves as a hash function for a particular type, suitable for use in /// hashing algorithms and data structures like a hash table /// public override int GetHashCode() { return base.GetHashCode(); } ////// Equals operator overload /// public static bool operator== (RoutedEventHandlerInfo handlerInfo1, RoutedEventHandlerInfo handlerInfo2) { return handlerInfo1.Equals(handlerInfo2); } ////// NotEquals operator overload /// public static bool operator!= (RoutedEventHandlerInfo handlerInfo1, RoutedEventHandlerInfo handlerInfo2) { return !handlerInfo1.Equals(handlerInfo2); } ////// Cleanup all the references within the data /// /* Commented out to avoid "uncalled private code" fxcop violation internal void Clear() { _handler = null; _handledEventsToo = false; } */ #endregion Operations #region Data private Delegate _handler; private bool _handledEventsToo; #endregion Data } } // 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
- UrlPath.cs
- DataControlFieldCell.cs
- ResourcePermissionBaseEntry.cs
- OrderByQueryOptionExpression.cs
- WindowPatternIdentifiers.cs
- EnvironmentPermission.cs
- HtmlInputText.cs
- TaiwanCalendar.cs
- GridViewDeletedEventArgs.cs
- RSAPKCS1SignatureFormatter.cs
- DataGridViewMethods.cs
- IISUnsafeMethods.cs
- COM2ColorConverter.cs
- SizeConverter.cs
- StandardBindingOptionalReliableSessionElement.cs
- SkinBuilder.cs
- ComplusTypeValidator.cs
- DashStyle.cs
- CompositeCollection.cs
- HttpListenerRequestTraceRecord.cs
- WebDescriptionAttribute.cs
- ContentFilePart.cs
- QuotedPrintableStream.cs
- Timeline.cs
- SettingsPropertyValueCollection.cs
- WindowClosedEventArgs.cs
- SvcMapFileLoader.cs
- QilGenerator.cs
- KeyPressEvent.cs
- EmptyStringExpandableObjectConverter.cs
- SqlClientWrapperSmiStream.cs
- WinEventQueueItem.cs
- NonClientArea.cs
- PrintingPermission.cs
- GridViewEditEventArgs.cs
- RestClientProxyHandler.cs
- MenuItemStyleCollection.cs
- XmlAttributeOverrides.cs
- HttpResponseInternalWrapper.cs
- RecognizedAudio.cs
- InternalDuplexChannelListener.cs
- SafeHandles.cs
- ConsoleKeyInfo.cs
- MappingException.cs
- X509SecurityTokenProvider.cs
- XpsFilter.cs
- XmlnsPrefixAttribute.cs
- BamlLocalizationDictionary.cs
- ForEachAction.cs
- FormClosedEvent.cs
- HttpRawResponse.cs
- Action.cs
- EntityDataSourceWrapperCollection.cs
- DiscreteKeyFrames.cs
- ThreadStaticAttribute.cs
- Camera.cs
- VirtualDirectoryMapping.cs
- DBSchemaRow.cs
- RowVisual.cs
- KnownTypeAttribute.cs
- SemanticBasicElement.cs
- HostProtectionPermission.cs
- QueryExtender.cs
- XmlObjectSerializerReadContextComplexJson.cs
- CacheChildrenQuery.cs
- SmiTypedGetterSetter.cs
- ColumnHeaderCollectionEditor.cs
- TdsValueSetter.cs
- BamlCollectionHolder.cs
- LinqMaximalSubtreeNominator.cs
- WebMethodAttribute.cs
- WorkflowPersistenceService.cs
- EventEntry.cs
- IPAddressCollection.cs
- ExportOptions.cs
- XmlSerializerAssemblyAttribute.cs
- SendingRequestEventArgs.cs
- DataExpression.cs
- TraceInternal.cs
- Screen.cs
- XPathItem.cs
- ListView.cs
- Point3DValueSerializer.cs
- FilterException.cs
- DoubleKeyFrameCollection.cs
- TextParagraphCache.cs
- PathFigureCollectionValueSerializer.cs
- AccessibilityApplicationManager.cs
- ToolStripHighContrastRenderer.cs
- CounterCreationData.cs
- PointValueSerializer.cs
- Point3D.cs
- MultiTrigger.cs
- ListItemParagraph.cs
- PropertyInformation.cs
- IItemProperties.cs
- QueueSurrogate.cs
- CompatibleComparer.cs
- Psha1DerivedKeyGeneratorHelper.cs
- OleDbCommandBuilder.cs