Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- BitmapMetadataEnumerator.cs
- DetailsViewRowCollection.cs
- OpCellTreeNode.cs
- TextRangeProviderWrapper.cs
- Cursors.cs
- DataGridViewTextBoxEditingControl.cs
- TypeUtil.cs
- QueueProcessor.cs
- PreProcessInputEventArgs.cs
- QuaternionAnimationUsingKeyFrames.cs
- Calendar.cs
- ZipIORawDataFileBlock.cs
- WorkflowOperationInvoker.cs
- EntitySet.cs
- PeerObject.cs
- BoundPropertyEntry.cs
- DirtyTextRange.cs
- unitconverter.cs
- SqlDeflator.cs
- LinqDataSourceValidationException.cs
- WindowsGraphicsCacheManager.cs
- LinqDataSourceStatusEventArgs.cs
- RemotingHelper.cs
- ReadOnlyObservableCollection.cs
- TextTreeNode.cs
- PathFigureCollectionValueSerializer.cs
- CalendarDay.cs
- DecimalAverageAggregationOperator.cs
- ToolStripSettings.cs
- Point.cs
- SingleObjectCollection.cs
- NegotiateStream.cs
- ToolStripCustomTypeDescriptor.cs
- ProgressBarAutomationPeer.cs
- GeometryDrawing.cs
- ChooseAction.cs
- XmlJsonWriter.cs
- DatePickerAutomationPeer.cs
- RegexRunner.cs
- StorageMappingFragment.cs
- XmlNamespaceMappingCollection.cs
- InvalidOperationException.cs
- HttpVersion.cs
- XmlWellformedWriter.cs
- CopyAction.cs
- Suspend.cs
- DateTimeValueSerializerContext.cs
- Attributes.cs
- StylusOverProperty.cs
- SqlBuilder.cs
- NamespaceMapping.cs
- ApplicationTrust.cs
- EasingKeyFrames.cs
- WinInetCache.cs
- ModuleBuilder.cs
- EmptyStringExpandableObjectConverter.cs
- WebMessageBodyStyleHelper.cs
- DemultiplexingClientMessageFormatter.cs
- FileDialog.cs
- DateTimeConverter.cs
- XmlException.cs
- InProcStateClientManager.cs
- PrefixHandle.cs
- ReadOnlyObservableCollection.cs
- ObjectMaterializedEventArgs.cs
- VectorAnimationUsingKeyFrames.cs
- XmlStreamNodeWriter.cs
- DataListCommandEventArgs.cs
- MetadataException.cs
- MSG.cs
- MenuItem.cs
- ControlValuePropertyAttribute.cs
- DataContractSerializer.cs
- CoreSwitches.cs
- ZipFileInfo.cs
- XmlDesignerDataSourceView.cs
- DrawingGroup.cs
- DbParameterHelper.cs
- DummyDataSource.cs
- PerformanceCountersElement.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- DataColumnPropertyDescriptor.cs
- DataGridViewCell.cs
- DecoderFallback.cs
- XmlValidatingReader.cs
- Input.cs
- SqlParameter.cs
- WMIInterop.cs
- Triangle.cs
- ErasingStroke.cs
- DateTimeParse.cs
- WebPartEditorCancelVerb.cs
- CodePageEncoding.cs
- EllipticalNodeOperations.cs
- _SSPISessionCache.cs
- AttachedPropertyInfo.cs
- ZipPackage.cs
- followingsibling.cs
- ToolboxItemCollection.cs
- ADMembershipProvider.cs