Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- SnapshotChangeTrackingStrategy.cs
- RenderCapability.cs
- ExecutorLocksHeldException.cs
- CharacterBufferReference.cs
- DataList.cs
- dataprotectionpermission.cs
- PlainXmlWriter.cs
- UnauthorizedWebPart.cs
- Translator.cs
- LeftCellWrapper.cs
- AnnotationResourceChangedEventArgs.cs
- Vector3DAnimationBase.cs
- WebSysDefaultValueAttribute.cs
- Stylesheet.cs
- Compiler.cs
- DataSourceXmlTextReader.cs
- DataGridViewTextBoxColumn.cs
- _PooledStream.cs
- StringInfo.cs
- CachedBitmap.cs
- Section.cs
- FontSizeConverter.cs
- Guid.cs
- MaskInputRejectedEventArgs.cs
- ChameleonKey.cs
- ConstructorBuilder.cs
- Wildcard.cs
- TCEAdapterGenerator.cs
- LogEntryDeserializer.cs
- httpstaticobjectscollection.cs
- ListManagerBindingsCollection.cs
- RuntimeConfig.cs
- DebuggerAttributes.cs
- StandardTransformFactory.cs
- ArgIterator.cs
- CertificateManager.cs
- DataGridRow.cs
- BuilderInfo.cs
- WebReferencesBuildProvider.cs
- IPGlobalProperties.cs
- ListViewItemMouseHoverEvent.cs
- LinkDescriptor.cs
- OleDbSchemaGuid.cs
- BitmapEffectDrawingContextWalker.cs
- TextRenderer.cs
- BindingCollection.cs
- CatalogPartCollection.cs
- SqlTypesSchemaImporter.cs
- FixUpCollection.cs
- UrlAuthFailureHandler.cs
- nulltextcontainer.cs
- PerformanceCounterPermissionEntry.cs
- peersecurityelement.cs
- DataControlButton.cs
- ExpandedWrapper.cs
- DataGridViewColumnCollectionEditor.cs
- RootBrowserWindowAutomationPeer.cs
- StyleBamlRecordReader.cs
- CompiledQueryCacheKey.cs
- XPathAxisIterator.cs
- RtfToXamlLexer.cs
- MobileTextWriter.cs
- _BufferOffsetSize.cs
- GridViewCellAutomationPeer.cs
- RtfToken.cs
- ToolboxComponentsCreatedEventArgs.cs
- PriorityQueue.cs
- TableRow.cs
- TextServicesHost.cs
- recordstatefactory.cs
- TiffBitmapEncoder.cs
- ThreadStartException.cs
- Utils.cs
- _IPv4Address.cs
- SynchronizationFilter.cs
- Table.cs
- SchemaConstraints.cs
- WSSecurityPolicy11.cs
- OleDbDataReader.cs
- TcpClientSocketManager.cs
- ThreadAttributes.cs
- AttachmentService.cs
- storepermissionattribute.cs
- ExpressionVisitor.cs
- ToolboxItemCollection.cs
- ScrollableControl.cs
- ArrangedElement.cs
- HMACRIPEMD160.cs
- EnumerableCollectionView.cs
- NotificationContext.cs
- TextDecorationUnitValidation.cs
- StreamResourceInfo.cs
- XmlSerializationGeneratedCode.cs
- SubqueryRules.cs
- DnsPermission.cs
- TargetConverter.cs
- FilterEventArgs.cs
- WindowsClaimSet.cs
- XmlQueryContext.cs
- DataBinder.cs