Code:
/ 4.0 / 4.0 / 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. 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
- CompilerScope.Storage.cs
- SchemaNotation.cs
- LowerCaseStringConverter.cs
- Number.cs
- QueryableDataSourceEditData.cs
- PassportAuthentication.cs
- OpCopier.cs
- MediaContextNotificationWindow.cs
- RelationshipWrapper.cs
- IssuanceLicense.cs
- Module.cs
- MultiByteCodec.cs
- PenLineCapValidation.cs
- HostedElements.cs
- HandlerFactoryCache.cs
- CheckBoxFlatAdapter.cs
- securitycriticaldata.cs
- DataGridHeaderBorder.cs
- XmlResolver.cs
- AsymmetricSignatureDeformatter.cs
- ClientEventManager.cs
- Speller.cs
- AttributeProviderAttribute.cs
- CategoryAttribute.cs
- AnnotationResourceCollection.cs
- StoreItemCollection.Loader.cs
- SafeNativeMemoryHandle.cs
- SHA1CryptoServiceProvider.cs
- SmuggledIUnknown.cs
- SwitchAttribute.cs
- AuthorizationRule.cs
- Peer.cs
- ProviderSettingsCollection.cs
- IncomingWebResponseContext.cs
- StretchValidation.cs
- DataGridPagerStyle.cs
- ExtenderControl.cs
- SyndicationFeedFormatter.cs
- GridViewUpdateEventArgs.cs
- Privilege.cs
- ForeignKeyConstraint.cs
- PageParser.cs
- DataRowCollection.cs
- CustomWebEventKey.cs
- SQLChars.cs
- GridViewRowEventArgs.cs
- BindingExpression.cs
- DbProviderFactoriesConfigurationHandler.cs
- SoapConverter.cs
- SimpleLine.cs
- WebPartCollection.cs
- ElementHost.cs
- MetadataArtifactLoaderComposite.cs
- CounterCreationData.cs
- ChannelManager.cs
- StrokeCollection2.cs
- HttpClientCertificate.cs
- BrowserInteropHelper.cs
- ThaiBuddhistCalendar.cs
- DesignerHelpers.cs
- BrowserDefinition.cs
- CodeExporter.cs
- FontWeights.cs
- SimpleBitVector32.cs
- TableRowGroup.cs
- HttpModuleCollection.cs
- ExclusiveHandleList.cs
- JournalEntry.cs
- HealthMonitoringSection.cs
- Error.cs
- Clause.cs
- NGCPageContentSerializerAsync.cs
- Attribute.cs
- PasswordRecovery.cs
- XPathNode.cs
- CompilerGlobalScopeAttribute.cs
- DefaultValueTypeConverter.cs
- XmlLoader.cs
- IgnoreFileBuildProvider.cs
- ScriptManagerProxy.cs
- SafeNativeMethods.cs
- ListParagraph.cs
- ConnectionInterfaceCollection.cs
- ValidatedControlConverter.cs
- EventBindingService.cs
- Columns.cs
- FileBasedResourceGroveler.cs
- UpdateProgress.cs
- ObjectContext.cs
- WebControlAdapter.cs
- OleDbException.cs
- SessionSwitchEventArgs.cs
- CodeGroup.cs
- DBCommand.cs
- DbParameterCollection.cs
- ConfigurationValidatorAttribute.cs
- xml.cs
- InputMethod.cs
- ZipIORawDataFileBlock.cs
- Literal.cs