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
- UnionExpr.cs
- ScaleTransform3D.cs
- Polygon.cs
- ConvertEvent.cs
- Literal.cs
- ConnectionStringSettings.cs
- FocusWithinProperty.cs
- CompositeScriptReference.cs
- EventLogEntry.cs
- processwaithandle.cs
- TextRangeEditLists.cs
- ColumnResizeAdorner.cs
- Shape.cs
- Dynamic.cs
- ThreadNeutralSemaphore.cs
- PropertySourceInfo.cs
- TransformDescriptor.cs
- ColorIndependentAnimationStorage.cs
- ActiveXContainer.cs
- DiagnosticTrace.cs
- EditingScopeUndoUnit.cs
- PropertyMapper.cs
- MapPathBasedVirtualPathProvider.cs
- ProxyWebPartConnectionCollection.cs
- Adorner.cs
- KeyValueInternalCollection.cs
- FormatConvertedBitmap.cs
- DesignerVerb.cs
- JsonFaultDetail.cs
- KnownTypesHelper.cs
- NamespaceInfo.cs
- OracleBinary.cs
- GregorianCalendarHelper.cs
- SplitterCancelEvent.cs
- ShapingWorkspace.cs
- NullRuntimeConfig.cs
- FamilyMap.cs
- URI.cs
- BasePattern.cs
- XmlNotation.cs
- SqlError.cs
- PageAsyncTaskManager.cs
- Point.cs
- TraceHandler.cs
- ContextInformation.cs
- TextEndOfLine.cs
- CallContext.cs
- ReachDocumentSequenceSerializer.cs
- AbstractSvcMapFileLoader.cs
- EnumerableValidator.cs
- EventLogRecord.cs
- Vector3dCollection.cs
- ContextInformation.cs
- TextRunCacheImp.cs
- COM2ExtendedBrowsingHandler.cs
- ObjectConverter.cs
- IndentedWriter.cs
- PackageRelationship.cs
- DataGridViewCheckBoxCell.cs
- ZoomPercentageConverter.cs
- DataGridToolTip.cs
- DataPagerFieldItem.cs
- EmptyQuery.cs
- MailMessageEventArgs.cs
- SubpageParagraph.cs
- _CommandStream.cs
- WindowsAuthenticationModule.cs
- FormsAuthenticationUserCollection.cs
- ExpressionEditorAttribute.cs
- WindowsSidIdentity.cs
- SQLDouble.cs
- ExceptionRoutedEventArgs.cs
- OracleInternalConnection.cs
- Compiler.cs
- HyperLinkField.cs
- BooleanConverter.cs
- WrapPanel.cs
- EventLogPermissionAttribute.cs
- InputMethodStateChangeEventArgs.cs
- PublishLicense.cs
- View.cs
- Matrix.cs
- Configuration.cs
- _emptywebproxy.cs
- DynamicILGenerator.cs
- basecomparevalidator.cs
- StorageModelBuildProvider.cs
- DocumentOrderQuery.cs
- TextWriter.cs
- LongValidator.cs
- DocumentViewerBase.cs
- PackageStore.cs
- TreeWalkHelper.cs
- DrawingContextWalker.cs
- SqlWorkflowInstanceStoreLock.cs
- HtmlFormWrapper.cs
- CFStream.cs
- ConnectionStringSettings.cs
- TextTabProperties.cs
- smtpconnection.cs