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
- MultilineStringConverter.cs
- AtomPub10CategoriesDocumentFormatter.cs
- XmlSchemaIdentityConstraint.cs
- GroupBoxAutomationPeer.cs
- ConfigurationManagerInternal.cs
- Vector3D.cs
- CollectionDataContract.cs
- InkCollectionBehavior.cs
- StrokeNodeOperations.cs
- SspiSafeHandles.cs
- FunctionNode.cs
- DictionaryContent.cs
- DefaultMemberAttribute.cs
- SmiTypedGetterSetter.cs
- IndexedString.cs
- Lasso.cs
- HighlightVisual.cs
- QuadraticBezierSegment.cs
- TileModeValidation.cs
- Dump.cs
- ZipFileInfo.cs
- RequestBringIntoViewEventArgs.cs
- ListenerBinder.cs
- XmlDeclaration.cs
- webclient.cs
- _OSSOCK.cs
- SizeConverter.cs
- SectionRecord.cs
- ImageListUtils.cs
- IInstanceTable.cs
- _Events.cs
- ClipboardProcessor.cs
- CompilationUtil.cs
- DSASignatureDeformatter.cs
- SoapParser.cs
- ObjectReaderCompiler.cs
- Model3D.cs
- CellCreator.cs
- AssemblyAssociatedContentFileAttribute.cs
- CompositeDesignerAccessibleObject.cs
- HandlerFactoryWrapper.cs
- TreeNodeCollection.cs
- SplitterPanel.cs
- DesignBindingValueUIHandler.cs
- ToolStripRendererSwitcher.cs
- UpDownBase.cs
- EmptyElement.cs
- DispatchOperationRuntime.cs
- Accessors.cs
- StateMachine.cs
- NativeMethods.cs
- XmlSchemaAny.cs
- UnionCqlBlock.cs
- CatalogPartCollection.cs
- InputProcessorProfiles.cs
- DeclarativeCatalogPart.cs
- XmlSchemaAttributeGroup.cs
- EntityParameterCollection.cs
- PreProcessInputEventArgs.cs
- UpdateRecord.cs
- ExtendedPropertyCollection.cs
- RestClientProxyHandler.cs
- UserCancellationException.cs
- SymbolMethod.cs
- MessageDecoder.cs
- BooleanSwitch.cs
- SHA1Managed.cs
- NavigationFailedEventArgs.cs
- StringFunctions.cs
- ProtocolsSection.cs
- PrintControllerWithStatusDialog.cs
- DBNull.cs
- ShaderEffect.cs
- CheckBoxStandardAdapter.cs
- HttpBrowserCapabilitiesWrapper.cs
- SpotLight.cs
- SizeConverter.cs
- KeyValuePair.cs
- ScrollBarRenderer.cs
- FixUpCollection.cs
- SkewTransform.cs
- TemplatePropertyEntry.cs
- cryptoapiTransform.cs
- JsonReaderWriterFactory.cs
- SecurityElementBase.cs
- RelationshipEndCollection.cs
- FrameworkElementFactory.cs
- StringConverter.cs
- ConfigXmlCDataSection.cs
- EventLogPermission.cs
- TranslateTransform.cs
- DesignerExtenders.cs
- TypeNameConverter.cs
- UTF7Encoding.cs
- HtmlForm.cs
- util.cs
- SessionEndedEventArgs.cs
- EmulateRecognizeCompletedEventArgs.cs
- OrthographicCamera.cs
- DrawingGroup.cs