Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- Rules.cs
- XmlSchemaGroup.cs
- MessageProtectionOrder.cs
- ApplicationInfo.cs
- EntityTypeEmitter.cs
- Trace.cs
- Parser.cs
- MetafileHeader.cs
- CodeNamespaceImportCollection.cs
- FileFormatException.cs
- SqlNotificationRequest.cs
- ConditionalDesigner.cs
- DescriptionAttribute.cs
- XmlSignificantWhitespace.cs
- DataGridCommandEventArgs.cs
- FrameworkRichTextComposition.cs
- GridEntry.cs
- WindowsAuthenticationModule.cs
- XPathNodeIterator.cs
- SingleObjectCollection.cs
- NonSerializedAttribute.cs
- XmlDataLoader.cs
- LineBreakRecord.cs
- Rotation3DAnimation.cs
- SinglePhaseEnlistment.cs
- FrameworkContentElement.cs
- CallbackHandler.cs
- ProxyGenerator.cs
- CalendarAutomationPeer.cs
- IgnoreDeviceFilterElement.cs
- CodePageEncoding.cs
- BitmapMetadata.cs
- MetadataItemCollectionFactory.cs
- System.Data_BID.cs
- wmiprovider.cs
- ManagementObjectSearcher.cs
- ButtonChrome.cs
- ToolStripOverflowButton.cs
- DataTableReader.cs
- securestring.cs
- DependencyPropertyKind.cs
- DrawingBrush.cs
- SimplePropertyEntry.cs
- Columns.cs
- IListConverters.cs
- TypeInfo.cs
- ADRoleFactoryConfiguration.cs
- versioninfo.cs
- DataGridView.cs
- NetworkStream.cs
- RequestCacheManager.cs
- UIEndRequest.cs
- SystemDropShadowChrome.cs
- DependencyPropertyAttribute.cs
- ExclusiveCanonicalizationTransform.cs
- EpmTargetPathSegment.cs
- DbProviderFactories.cs
- DeferredRunTextReference.cs
- DefaultCompensation.cs
- StateChangeEvent.cs
- ChooseAction.cs
- IntranetCredentialPolicy.cs
- NestPullup.cs
- TableHeaderCell.cs
- PrintingPermissionAttribute.cs
- TableLayoutSettings.cs
- CodeObjectCreateExpression.cs
- Dictionary.cs
- ZipIOModeEnforcingStream.cs
- MetadataArtifactLoader.cs
- Calendar.cs
- EditorZoneBase.cs
- DataGridPageChangedEventArgs.cs
- IOThreadTimer.cs
- CriticalFinalizerObject.cs
- CompressEmulationStream.cs
- EdmComplexTypeAttribute.cs
- CalendarKeyboardHelper.cs
- ContentValidator.cs
- ConnectionProviderAttribute.cs
- HtmlImage.cs
- DependencyObjectType.cs
- RootBrowserWindowAutomationPeer.cs
- BinaryCommonClasses.cs
- ComplexLine.cs
- JulianCalendar.cs
- DefaultParameterValueAttribute.cs
- SafeHandle.cs
- NotificationContext.cs
- ColorContextHelper.cs
- ImageSource.cs
- XsdValidatingReader.cs
- TargetControlTypeCache.cs
- RequestTimeoutManager.cs
- OdbcHandle.cs
- ColumnHeader.cs
- RegexParser.cs
- CodeSubDirectoriesCollection.cs
- WindowsAuthenticationEventArgs.cs
- FrameworkElement.cs