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
- BaseInfoTable.cs
- NumberFormatter.cs
- CodeAttachEventStatement.cs
- DesignerSerializationManager.cs
- String.cs
- KeyInstance.cs
- SystemBrushes.cs
- WmiInstallComponent.cs
- SimpleColumnProvider.cs
- SapiRecognizer.cs
- InvokeMethodActivity.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- InstanceNotReadyException.cs
- ExtensionCollection.cs
- Int64AnimationBase.cs
- HttpWriter.cs
- OperationResponse.cs
- Query.cs
- SymLanguageVendor.cs
- DataControlFieldCell.cs
- ObjectNotFoundException.cs
- RequestCache.cs
- FixedFindEngine.cs
- SystemInfo.cs
- CommandEventArgs.cs
- KeyedHashAlgorithm.cs
- DataGridViewAddColumnDialog.cs
- ImageConverter.cs
- BufferBuilder.cs
- activationcontext.cs
- AQNBuilder.cs
- RelationshipSet.cs
- BufferModesCollection.cs
- PauseStoryboard.cs
- SystemFonts.cs
- Fonts.cs
- VirtualPathUtility.cs
- PriorityQueue.cs
- XmlArrayItemAttribute.cs
- XmlILTrace.cs
- formatter.cs
- Pair.cs
- RequestResizeEvent.cs
- ListCollectionView.cs
- CollectionBuilder.cs
- GridViewRow.cs
- WebServiceHostFactory.cs
- StorageInfo.cs
- XPSSignatureDefinition.cs
- TileBrush.cs
- ClientTargetCollection.cs
- DebugHandleTracker.cs
- LineMetrics.cs
- XsdValidatingReader.cs
- ExclusiveHandle.cs
- TableLayout.cs
- CaseInsensitiveComparer.cs
- HashCodeCombiner.cs
- TextProperties.cs
- ListView.cs
- Splitter.cs
- xmlfixedPageInfo.cs
- StreamWriter.cs
- RemotingAttributes.cs
- DataComponentGenerator.cs
- SemaphoreSecurity.cs
- InstanceHandleConflictException.cs
- DataIdProcessor.cs
- ConfigurationElementCollection.cs
- WebColorConverter.cs
- TreeNodeCollection.cs
- SerialPort.cs
- StorageEntityTypeMapping.cs
- SelectionList.cs
- DataBinder.cs
- ProtocolsConfiguration.cs
- EncoderBestFitFallback.cs
- XmlSchemaSimpleContentRestriction.cs
- CalendarDay.cs
- DurableEnlistmentState.cs
- Win32.cs
- HttpFileCollectionWrapper.cs
- ValueExpressions.cs
- AudioDeviceOut.cs
- CodePropertyReferenceExpression.cs
- NamespaceEmitter.cs
- _ListenerAsyncResult.cs
- DbReferenceCollection.cs
- CharacterMetricsDictionary.cs
- StagingAreaInputItem.cs
- TimeSpanOrInfiniteConverter.cs
- OleDbEnumerator.cs
- HTMLTextWriter.cs
- XmlSignificantWhitespace.cs
- TransformBlockRequest.cs
- SqlAliasesReferenced.cs
- TextTreeText.cs
- SymbolEqualComparer.cs
- SQLUtility.cs
- OleAutBinder.cs