Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlXmlStorage.cs
- XhtmlBasicListAdapter.cs
- GridViewColumnHeader.cs
- FontSource.cs
- DataStreamFromComStream.cs
- NativeMethodsOther.cs
- ColorConvertedBitmap.cs
- ExtensionElement.cs
- TCPListener.cs
- XmlSchemaAttributeGroup.cs
- EntityContainerAssociationSet.cs
- UTF7Encoding.cs
- WorkflowCompensationBehavior.cs
- DynamicValidatorEventArgs.cs
- TableColumn.cs
- ErrorTableItemStyle.cs
- KeyEventArgs.cs
- SqlVisitor.cs
- COM2ComponentEditor.cs
- InputDevice.cs
- GradientBrush.cs
- SymDocumentType.cs
- GeneralTransform3DCollection.cs
- OpenFileDialog.cs
- TreeNodeCollection.cs
- StsCommunicationException.cs
- SqlIdentifier.cs
- DisposableCollectionWrapper.cs
- MetafileHeaderEmf.cs
- TextDataBindingHandler.cs
- DataGridCellItemAutomationPeer.cs
- SiteMapPath.cs
- __FastResourceComparer.cs
- RenamedEventArgs.cs
- SiteMap.cs
- PolyQuadraticBezierSegment.cs
- ColorConverter.cs
- JsonFormatWriterGenerator.cs
- LoginUtil.cs
- RenderingEventArgs.cs
- WorkflowServiceAttributesTypeConverter.cs
- BuilderPropertyEntry.cs
- ColumnBinding.cs
- COSERVERINFO.cs
- SecurityElement.cs
- Operator.cs
- IndividualDeviceConfig.cs
- HttpCookieCollection.cs
- TargetConverter.cs
- SettingsProviderCollection.cs
- WeakHashtable.cs
- Point3DKeyFrameCollection.cs
- x509utils.cs
- DetailsView.cs
- SessionStateUtil.cs
- WebPartTracker.cs
- DeviceOverridableAttribute.cs
- PropertyPanel.cs
- EdmProperty.cs
- loginstatus.cs
- MetadataCollection.cs
- ListViewItem.cs
- ParenthesizePropertyNameAttribute.cs
- XmlC14NWriter.cs
- Journaling.cs
- InstanceLockQueryResult.cs
- InfoCardMasterKey.cs
- TextDecorationCollection.cs
- InfiniteTimeSpanConverter.cs
- WebPartCancelEventArgs.cs
- DefaultBinder.cs
- TextElementEnumerator.cs
- CalendarBlackoutDatesCollection.cs
- UpdatePanelTriggerCollection.cs
- ContextDataSource.cs
- JavaScriptString.cs
- InputMethodStateTypeInfo.cs
- UTF7Encoding.cs
- CallbackException.cs
- NodeFunctions.cs
- _RequestLifetimeSetter.cs
- EditorZoneBase.cs
- RequestCachingSection.cs
- DelegateBodyWriter.cs
- PanelStyle.cs
- NameScopePropertyAttribute.cs
- OdbcEnvironment.cs
- DesignerActionUI.cs
- _NetworkingPerfCounters.cs
- StylusDevice.cs
- UriExt.cs
- IndexedEnumerable.cs
- IPPacketInformation.cs
- IntegerValidatorAttribute.cs
- WindowsEditBoxRange.cs
- Crc32Helper.cs
- SymbolTable.cs
- UnsafeNativeMethods.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- RectAnimationClockResource.cs