Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- XmlWhitespace.cs
- GroupQuery.cs
- ListItem.cs
- ClientData.cs
- SafeProcessHandle.cs
- DatatypeImplementation.cs
- DummyDataSource.cs
- Membership.cs
- SafeArrayTypeMismatchException.cs
- ReferenceConverter.cs
- XdrBuilder.cs
- VirtualDirectoryMappingCollection.cs
- NavigatingCancelEventArgs.cs
- SyntaxCheck.cs
- TextWriterEngine.cs
- MappingSource.cs
- EntityTemplateFactory.cs
- RouteItem.cs
- ImageButton.cs
- SoapObjectWriter.cs
- ArcSegment.cs
- BaseValidatorDesigner.cs
- XmlQualifiedNameTest.cs
- QueryCorrelationInitializer.cs
- DetailsViewPageEventArgs.cs
- NotifyIcon.cs
- LogSwitch.cs
- CommunicationObject.cs
- EnvironmentPermission.cs
- Panel.cs
- SymbolEqualComparer.cs
- TextDecorationCollectionConverter.cs
- CharacterBufferReference.cs
- HTMLTextWriter.cs
- AutoResizedEvent.cs
- ResourceManagerWrapper.cs
- PolyLineSegment.cs
- CrossSiteScriptingValidation.cs
- StatusBarPanel.cs
- PeerNameResolver.cs
- Control.cs
- LogicalCallContext.cs
- HttpClientCertificate.cs
- RawTextInputReport.cs
- FlowPosition.cs
- TableLayoutSettingsTypeConverter.cs
- MetaDataInfo.cs
- AutomationPattern.cs
- ExcCanonicalXml.cs
- Component.cs
- EditorResources.cs
- PropertySet.cs
- AssemblyCollection.cs
- BaseDataList.cs
- CorrelationInitializer.cs
- InputScopeConverter.cs
- XhtmlBasicLinkAdapter.cs
- DmlSqlGenerator.cs
- PopOutPanel.cs
- DbConnectionPoolOptions.cs
- CalendarAutomationPeer.cs
- LinqDataSourceContextEventArgs.cs
- SqlInfoMessageEvent.cs
- ButtonStandardAdapter.cs
- PropertyDescriptorCollection.cs
- OdbcParameter.cs
- MemberAssignment.cs
- NameSpaceExtractor.cs
- ActivityTypeCodeDomSerializer.cs
- DependencyObjectProvider.cs
- DesignerSerializationOptionsAttribute.cs
- PaintValueEventArgs.cs
- AsymmetricKeyExchangeFormatter.cs
- EngineSiteSapi.cs
- SmiContextFactory.cs
- ExpressionPrefixAttribute.cs
- Properties.cs
- BinaryUtilClasses.cs
- ImagingCache.cs
- ValueTypeFixupInfo.cs
- ControlPaint.cs
- SqlDataSourceEnumerator.cs
- SoapEnumAttribute.cs
- SQLRoleProvider.cs
- MatrixTransform.cs
- HtmlInputImage.cs
- ResourceReferenceExpressionConverter.cs
- LogWriteRestartAreaState.cs
- DataRelationPropertyDescriptor.cs
- WebPartCatalogCloseVerb.cs
- JoinTreeSlot.cs
- TemplatePartAttribute.cs
- SeparatorAutomationPeer.cs
- XNodeValidator.cs
- ParseElement.cs
- InkCanvasInnerCanvas.cs
- SQLSingle.cs
- WSFederationHttpBindingElement.cs
- ImageCodecInfoPrivate.cs
- DbConnectionHelper.cs