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
- XDeferredAxisSource.cs
- AdapterUtil.cs
- ParserStreamGeometryContext.cs
- DesignSurfaceManager.cs
- EnumValAlphaComparer.cs
- ActiveXSerializer.cs
- ValidationErrorEventArgs.cs
- DataGridViewColumnStateChangedEventArgs.cs
- Section.cs
- GenericWebPart.cs
- BuilderElements.cs
- ResolveNameEventArgs.cs
- _AutoWebProxyScriptWrapper.cs
- GridItem.cs
- DocumentEventArgs.cs
- HttpHandlerActionCollection.cs
- RealizedColumnsBlock.cs
- TextDecorationCollection.cs
- DataObjectEventArgs.cs
- HtmlElementErrorEventArgs.cs
- ItemCheckEvent.cs
- TdsParserSessionPool.cs
- ADMembershipProvider.cs
- ErrorInfoXmlDocument.cs
- ViewValidator.cs
- MouseOverProperty.cs
- wgx_commands.cs
- ResourceDisplayNameAttribute.cs
- Script.cs
- GroupQuery.cs
- ArraySegment.cs
- _CacheStreams.cs
- TextEditorDragDrop.cs
- PageCache.cs
- CryptoHelper.cs
- RuntimeHelpers.cs
- FixUpCollection.cs
- InvalidateEvent.cs
- Transactions.cs
- MULTI_QI.cs
- Win32Exception.cs
- CultureInfo.cs
- CqlParserHelpers.cs
- OdbcStatementHandle.cs
- SuppressMergeCheckAttribute.cs
- DateTimeFormatInfo.cs
- QuaternionKeyFrameCollection.cs
- ElementProxy.cs
- JumpTask.cs
- Triangle.cs
- StdValidatorsAndConverters.cs
- Geometry.cs
- Synchronization.cs
- SurrogateSelector.cs
- ReadOnlyAttribute.cs
- SqlUtil.cs
- ForeignConstraint.cs
- ServerIdentity.cs
- ArrayList.cs
- WindowPatternIdentifiers.cs
- Span.cs
- ToolBar.cs
- EntityContainerRelationshipSetEnd.cs
- RegistrySecurity.cs
- RoleServiceManager.cs
- IgnoreFlushAndCloseStream.cs
- HttpModuleActionCollection.cs
- SynchronizationValidator.cs
- Utils.cs
- JavaScriptString.cs
- OrderedEnumerableRowCollection.cs
- EntityViewGenerator.cs
- ValueChangedEventManager.cs
- AnnotationComponentManager.cs
- DocumentPaginator.cs
- CodeGenHelper.cs
- OdbcUtils.cs
- DataGridViewHitTestInfo.cs
- PrintEvent.cs
- KeyValueConfigurationCollection.cs
- LogWriteRestartAreaAsyncResult.cs
- EntityWrapper.cs
- XsltContext.cs
- DataGridState.cs
- HostVisual.cs
- InstanceDescriptor.cs
- ConfigurationValidatorAttribute.cs
- XmlSchemaCompilationSettings.cs
- _ListenerRequestStream.cs
- CanonicalXml.cs
- RegexReplacement.cs
- ProviderUtil.cs
- GridViewEditEventArgs.cs
- PreloadedPackages.cs
- ReferencedCollectionType.cs
- EntityChangedParams.cs
- Trustee.cs
- PartitionerStatic.cs
- HwndHost.cs
- BitmapImage.cs