Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / RoutedEventHandlerInfo.cs / 1305600 / 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
- PersonalizationAdministration.cs
- RtfNavigator.cs
- TabControlEvent.cs
- TheQuery.cs
- FixedSOMGroup.cs
- MdImport.cs
- CommandDevice.cs
- ControlPersister.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- XsltLoader.cs
- AdCreatedEventArgs.cs
- DurationConverter.cs
- FixedPage.cs
- ExpressionDumper.cs
- SqlServices.cs
- StylusEventArgs.cs
- StringInfo.cs
- SessionEndingEventArgs.cs
- MsmqReceiveParameters.cs
- DataGridCell.cs
- ExpressionSelection.cs
- CodeAttributeArgumentCollection.cs
- ChildDocumentBlock.cs
- XmlSchemaAppInfo.cs
- InnerItemCollectionView.cs
- DataRecordInternal.cs
- FigureParagraph.cs
- remotingproxy.cs
- Line.cs
- ProviderConnectionPoint.cs
- OleDbPermission.cs
- SHA384.cs
- UserPreferenceChangedEventArgs.cs
- SubMenuStyleCollection.cs
- MouseGestureConverter.cs
- XmlLanguageConverter.cs
- Separator.cs
- XmlSchemaSimpleType.cs
- CustomCredentialPolicy.cs
- TextContainer.cs
- TypeToArgumentTypeConverter.cs
- DefinitionBase.cs
- ResizeBehavior.cs
- Sorting.cs
- CurrentTimeZone.cs
- UnknownWrapper.cs
- HtmlInputFile.cs
- SerializationSectionGroup.cs
- externdll.cs
- AuthenticatedStream.cs
- TreeNodeEventArgs.cs
- NodeInfo.cs
- PointConverter.cs
- StylusEventArgs.cs
- WebServiceHandlerFactory.cs
- MouseGestureConverter.cs
- KeyedCollection.cs
- GridViewColumnCollectionChangedEventArgs.cs
- HtmlHistory.cs
- UnknownBitmapEncoder.cs
- TaiwanCalendar.cs
- InternalCompensate.cs
- XPathItem.cs
- Maps.cs
- SmtpNtlmAuthenticationModule.cs
- HttpPostLocalhostServerProtocol.cs
- RouteValueExpressionBuilder.cs
- Context.cs
- DataTemplateSelector.cs
- AffineTransform3D.cs
- XpsResourceDictionary.cs
- BindingSource.cs
- ContainerVisual.cs
- UnsignedPublishLicense.cs
- BinaryConverter.cs
- ContentTextAutomationPeer.cs
- SiteMapSection.cs
- ProxyWebPartConnectionCollection.cs
- LifetimeServices.cs
- HttpInputStream.cs
- FacetEnabledSchemaElement.cs
- RuntimeResourceSet.cs
- RemoteCryptoRsaServiceProvider.cs
- assertwrapper.cs
- ImageListStreamer.cs
- ScriptControlManager.cs
- OletxResourceManager.cs
- EntityDataSourceDataSelection.cs
- InstanceCompleteException.cs
- TextEditorCopyPaste.cs
- LoginDesigner.cs
- BaseCAMarshaler.cs
- BitmapMetadata.cs
- AffineTransform3D.cs
- AtomServiceDocumentSerializer.cs
- FormsAuthenticationCredentials.cs
- HttpCapabilitiesEvaluator.cs
- WmlFormAdapter.cs
- SectionVisual.cs
- WebPartEventArgs.cs