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
- Command.cs
- MeshGeometry3D.cs
- PerfCounterSection.cs
- PngBitmapEncoder.cs
- XmlHierarchicalDataSourceView.cs
- ChtmlImageAdapter.cs
- UnregisterInfo.cs
- FilterException.cs
- StateDesigner.Layouts.cs
- _ListenerResponseStream.cs
- SkipStoryboardToFill.cs
- CommandTreeTypeHelper.cs
- XmlMapping.cs
- ProxyManager.cs
- EditBehavior.cs
- NetworkInformationPermission.cs
- FullTextBreakpoint.cs
- QilReplaceVisitor.cs
- RequestNavigateEventArgs.cs
- WebControlParameterProxy.cs
- ToolStripOverflow.cs
- EditorBrowsableAttribute.cs
- PointAnimationClockResource.cs
- JsonDeserializer.cs
- SqlDataSourceCache.cs
- Ops.cs
- ObjectDataSourceStatusEventArgs.cs
- UserNameServiceElement.cs
- ImageBrush.cs
- SQLInt16Storage.cs
- FixedTextPointer.cs
- ProfileInfo.cs
- DecimalAnimationUsingKeyFrames.cs
- DbReferenceCollection.cs
- CollectionBuilder.cs
- ProcessModule.cs
- State.cs
- SafeThreadHandle.cs
- Memoizer.cs
- DiscoveryRequestHandler.cs
- PerSessionInstanceContextProvider.cs
- CodeGenerator.cs
- XmlSchemaAnnotated.cs
- ParsedAttributeCollection.cs
- Behavior.cs
- QilExpression.cs
- FlowDocumentPageViewerAutomationPeer.cs
- messageonlyhwndwrapper.cs
- HandleRef.cs
- Main.cs
- TypedRowGenerator.cs
- WebPartDisplayModeCollection.cs
- ScrollItemProviderWrapper.cs
- listviewsubitemcollectioneditor.cs
- TickBar.cs
- QueryResponse.cs
- SendAgentStatusRequest.cs
- LineMetrics.cs
- ApplicationServiceHelper.cs
- ScalarConstant.cs
- RelatedView.cs
- InfoCardBinaryReader.cs
- AttributeInfo.cs
- GenericsInstances.cs
- ConnectionsZone.cs
- linebase.cs
- VersionPair.cs
- HostVisual.cs
- ValidationContext.cs
- XMLUtil.cs
- VarRefManager.cs
- ProfilePropertySettings.cs
- CollectionExtensions.cs
- EventDescriptor.cs
- CssStyleCollection.cs
- VisualBasicReference.cs
- OpenFileDialog.cs
- Rotation3DKeyFrameCollection.cs
- WindowsListViewItem.cs
- ClientSettingsProvider.cs
- _OverlappedAsyncResult.cs
- DataServiceCollectionOfT.cs
- AssemblyGen.cs
- Base64Decoder.cs
- MouseGestureConverter.cs
- DataControlFieldCell.cs
- PermissionRequestEvidence.cs
- AppDomain.cs
- CompilationPass2TaskInternal.cs
- CharacterString.cs
- ItemTypeToolStripMenuItem.cs
- WindowsFormsHostPropertyMap.cs
- ConfigXmlSignificantWhitespace.cs
- ConnectionProviderAttribute.cs
- PiiTraceSource.cs
- ChannelPoolSettingsElement.cs
- BindingSource.cs
- SqlBulkCopy.cs
- PropertyItem.cs
- Lock.cs