Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DecimalAnimationUsingKeyFrames.cs
- XmlSchemaInfo.cs
- PartitionerStatic.cs
- FontSource.cs
- BaseAutoFormat.cs
- MouseWheelEventArgs.cs
- PointAnimationBase.cs
- InputScope.cs
- CombinedGeometry.cs
- TimeSpanOrInfiniteConverter.cs
- Stack.cs
- DesignSurface.cs
- Serializer.cs
- HyperLinkColumn.cs
- CommandManager.cs
- CancelRequestedRecord.cs
- ObjectAnimationUsingKeyFrames.cs
- Rotation3DAnimationBase.cs
- NativeMethods.cs
- WebPartMovingEventArgs.cs
- Registry.cs
- WebMessageFormatHelper.cs
- ReferenceEqualityComparer.cs
- SEHException.cs
- TreeIterator.cs
- ViewStateException.cs
- ColorConverter.cs
- SpecialNameAttribute.cs
- WebBrowserHelper.cs
- ICspAsymmetricAlgorithm.cs
- Panel.cs
- StateDesigner.Layouts.cs
- PolyBezierSegment.cs
- GridToolTip.cs
- DataBoundLiteralControl.cs
- DesignerSerializationOptionsAttribute.cs
- LeftCellWrapper.cs
- RequestCacheManager.cs
- HtmlAnchor.cs
- HttpPostClientProtocol.cs
- OracleTimeSpan.cs
- ResponseBodyWriter.cs
- EditorBrowsableAttribute.cs
- DbResourceAllocator.cs
- HeaderCollection.cs
- LZCodec.cs
- Evaluator.cs
- DiagnosticTrace.cs
- ListBoxAutomationPeer.cs
- DependencyPropertyChangedEventArgs.cs
- WindowsListView.cs
- SoapSchemaImporter.cs
- FormCollection.cs
- SingleStorage.cs
- CodeEventReferenceExpression.cs
- InputScopeNameConverter.cs
- HtmlInputCheckBox.cs
- QueueAccessMode.cs
- EventMappingSettingsCollection.cs
- FtpCachePolicyElement.cs
- RIPEMD160Managed.cs
- HttpServerUtilityBase.cs
- TemplateApplicationHelper.cs
- ProcessThreadCollection.cs
- ImageAttributes.cs
- MsmqIntegrationMessagePool.cs
- WorkflowTraceTransfer.cs
- RoleExceptions.cs
- CodeTypeReferenceExpression.cs
- Facet.cs
- KoreanCalendar.cs
- OleDbReferenceCollection.cs
- UIPropertyMetadata.cs
- JoinCqlBlock.cs
- TypeTypeConverter.cs
- ScrollItemPatternIdentifiers.cs
- FormViewModeEventArgs.cs
- TemplateBindingExpressionConverter.cs
- MULTI_QI.cs
- CorePropertiesFilter.cs
- List.cs
- VirtualDirectoryMapping.cs
- HostingEnvironmentWrapper.cs
- GatewayDefinition.cs
- XmlEncoding.cs
- ValueOfAction.cs
- ConversionContext.cs
- SchemaConstraints.cs
- EmptyEnumerable.cs
- ContentType.cs
- HttpContext.cs
- AstTree.cs
- NameNode.cs
- ItemContainerPattern.cs
- InvalidCastException.cs
- CapabilitiesPattern.cs
- HandleCollector.cs
- ControlPager.cs
- CharacterShapingProperties.cs
- GPPOINT.cs