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
- Marshal.cs
- GraphicsContext.cs
- OdbcCommand.cs
- RSACryptoServiceProvider.cs
- SizeChangedInfo.cs
- _AcceptOverlappedAsyncResult.cs
- EncoderBestFitFallback.cs
- CodeTypeParameterCollection.cs
- EntityEntry.cs
- ConvertTextFrag.cs
- FontFamily.cs
- PackageRelationshipCollection.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- Parser.cs
- BamlBinaryReader.cs
- BindableTemplateBuilder.cs
- Helpers.cs
- FixUp.cs
- PngBitmapEncoder.cs
- DSASignatureFormatter.cs
- PreviewKeyDownEventArgs.cs
- StrongNameUtility.cs
- CompositeCollection.cs
- _NativeSSPI.cs
- CryptographicAttribute.cs
- SetIndexBinder.cs
- HttpWebResponse.cs
- HostingEnvironmentSection.cs
- HttpListenerResponse.cs
- HasCopySemanticsAttribute.cs
- NopReturnReader.cs
- AnnotationHighlightLayer.cs
- FontNamesConverter.cs
- EntityReference.cs
- TextServicesManager.cs
- ServicePoint.cs
- ColorTransformHelper.cs
- CacheManager.cs
- OuterGlowBitmapEffect.cs
- LinkUtilities.cs
- DropSource.cs
- InvalidChannelBindingException.cs
- XPathNodePointer.cs
- InstallerTypeAttribute.cs
- StyleModeStack.cs
- QilReplaceVisitor.cs
- BindUriHelper.cs
- ShaderEffect.cs
- DataRelationCollection.cs
- AdornerLayer.cs
- WebZone.cs
- GridViewRowCollection.cs
- PolyQuadraticBezierSegment.cs
- DBCSCodePageEncoding.cs
- FileCodeGroup.cs
- ProfileSettingsCollection.cs
- WebPartsPersonalization.cs
- ServiceOperationParameter.cs
- TableItemStyle.cs
- EntityDataSourceValidationException.cs
- IncomingWebResponseContext.cs
- ConstantExpression.cs
- XmlSchemaCompilationSettings.cs
- HyperLinkField.cs
- FieldDescriptor.cs
- AmbiguousMatchException.cs
- ActivationArguments.cs
- XNodeValidator.cs
- DbConnectionPoolOptions.cs
- ExpressionBuilder.cs
- UrlEncodedParameterWriter.cs
- RegexWriter.cs
- XmlRootAttribute.cs
- ScopelessEnumAttribute.cs
- BufferedReadStream.cs
- RegionIterator.cs
- DESCryptoServiceProvider.cs
- WindowExtensionMethods.cs
- State.cs
- Screen.cs
- DBConnection.cs
- XmlSchemas.cs
- InternalConfigSettingsFactory.cs
- CommonObjectSecurity.cs
- TextBoxRenderer.cs
- ItemsChangedEventArgs.cs
- SecurityTokenException.cs
- SingleConverter.cs
- FontStretchConverter.cs
- SelectionRangeConverter.cs
- UriParserTemplates.cs
- AddInDeploymentState.cs
- FileDataSourceCache.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- DataGridViewRowsRemovedEventArgs.cs
- SqlUtil.cs
- EnumValidator.cs
- MetafileHeader.cs
- PipelineComponent.cs
- DocumentXmlWriter.cs