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
- ReferencedCollectionType.cs
- ResourceProperty.cs
- ObjectHelper.cs
- SelectionRange.cs
- IntAverageAggregationOperator.cs
- Schedule.cs
- FamilyTypefaceCollection.cs
- WebPartConnectionsCancelVerb.cs
- WebMessageEncodingElement.cs
- tooltip.cs
- MsmqTransportElement.cs
- UniqueIdentifierService.cs
- XPathExpr.cs
- _ProxyRegBlob.cs
- RequestCachePolicy.cs
- HttpCookieCollection.cs
- WhereQueryOperator.cs
- DataGridViewRowsRemovedEventArgs.cs
- RegistrationServices.cs
- DataGridViewTextBoxEditingControl.cs
- CaseInsensitiveComparer.cs
- SystemDropShadowChrome.cs
- FixedSOMImage.cs
- AccessKeyManager.cs
- ListViewSelectEventArgs.cs
- HwndKeyboardInputProvider.cs
- RowTypePropertyElement.cs
- ResolveRequestResponseAsyncResult.cs
- XmlWellformedWriter.cs
- AuthorizationSection.cs
- PolyLineSegmentFigureLogic.cs
- CqlWriter.cs
- SemanticResolver.cs
- AuthenticationService.cs
- URLAttribute.cs
- ReflectPropertyDescriptor.cs
- BufferAllocator.cs
- DecoderReplacementFallback.cs
- BitmapCodecInfo.cs
- FontClient.cs
- ToggleButton.cs
- EntityViewGenerator.cs
- AttachmentCollection.cs
- UnregisterInfo.cs
- ColumnBinding.cs
- XmlSignatureManifest.cs
- EntitySetBaseCollection.cs
- Viewport3DAutomationPeer.cs
- UidManager.cs
- FactoryRecord.cs
- assemblycache.cs
- MetadataArtifactLoaderFile.cs
- WsiProfilesElement.cs
- WebPartDisplayMode.cs
- BitmapFrameDecode.cs
- ViewStateException.cs
- MaterialGroup.cs
- EntityDesignerDataSourceView.cs
- Odbc32.cs
- TextEditorLists.cs
- NameNode.cs
- ObjectSecurity.cs
- XmlAutoDetectWriter.cs
- MemberInfoSerializationHolder.cs
- MailMessageEventArgs.cs
- ScriptingWebServicesSectionGroup.cs
- CodeGenerator.cs
- ArgumentValidation.cs
- XPathNavigatorReader.cs
- BaseServiceProvider.cs
- UserPrincipalNameElement.cs
- WindowsTreeView.cs
- GridSplitter.cs
- ExtensionDataReader.cs
- PathGeometry.cs
- WindowsPen.cs
- OperationCanceledException.cs
- ParserExtension.cs
- CngUIPolicy.cs
- PartialList.cs
- ToolStripDropDownClosingEventArgs.cs
- KeySplineConverter.cs
- BindValidator.cs
- Substitution.cs
- FixedTextSelectionProcessor.cs
- OperationFormatStyle.cs
- RemotingConfiguration.cs
- Int16Storage.cs
- LogFlushAsyncResult.cs
- XmlSerializationWriter.cs
- OciLobLocator.cs
- StrokeNodeOperations.cs
- RoleManagerSection.cs
- StringUtil.cs
- ConstraintManager.cs
- BitSet.cs
- SplineQuaternionKeyFrame.cs
- BitmapEffectInput.cs
- DefinitionBase.cs
- MessageBox.cs