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
- MasterPageParser.cs
- PeerApplication.cs
- CfgParser.cs
- _IPv6Address.cs
- CodeCatchClauseCollection.cs
- IdentityNotMappedException.cs
- CompiledIdentityConstraint.cs
- ScriptIgnoreAttribute.cs
- BindingList.cs
- DocumentPageTextView.cs
- ConstrainedGroup.cs
- AppSettingsSection.cs
- DataGridView.cs
- Point3DAnimationUsingKeyFrames.cs
- XmlDataDocument.cs
- VirtualizingStackPanel.cs
- CodeTypeParameter.cs
- HostingEnvironmentException.cs
- Oid.cs
- ActiveXContainer.cs
- _emptywebproxy.cs
- DBSqlParserTableCollection.cs
- ReferenceAssemblyAttribute.cs
- QilInvokeLateBound.cs
- XamlFigureLengthSerializer.cs
- NumberSubstitution.cs
- sqlstateclientmanager.cs
- NewExpression.cs
- HtmlLink.cs
- CurrencyManager.cs
- DataGridViewRowCollection.cs
- Error.cs
- SerializerWriterEventHandlers.cs
- UserThread.cs
- KeyInterop.cs
- XmlChildEnumerator.cs
- Method.cs
- BoundPropertyEntry.cs
- CharEnumerator.cs
- EntityContainerAssociationSet.cs
- FormatterServices.cs
- WebScriptClientGenerator.cs
- ChangeConflicts.cs
- PageAsyncTaskManager.cs
- BitmapEffectGroup.cs
- OperationContext.cs
- TemplateComponentConnector.cs
- PublisherMembershipCondition.cs
- View.cs
- NavigationPropertySingletonExpression.cs
- Pens.cs
- AuthorizationSection.cs
- MembershipUser.cs
- EntityKey.cs
- WebConfigurationManager.cs
- WindowsSolidBrush.cs
- KeyConverter.cs
- FixedTextPointer.cs
- SqlFormatter.cs
- WorkflowElementDialogWindow.xaml.cs
- DataSourceCollectionBase.cs
- XmlBinaryReader.cs
- Memoizer.cs
- UpdatePanelControlTrigger.cs
- StringUtil.cs
- ZipIOCentralDirectoryFileHeader.cs
- MetadataUtil.cs
- CustomTokenProvider.cs
- GridEntryCollection.cs
- DataServiceException.cs
- ObjectCloneHelper.cs
- MeasureItemEvent.cs
- TemplateControlCodeDomTreeGenerator.cs
- cookie.cs
- NativeCompoundFileAPIs.cs
- GeneralTransform3D.cs
- FileEnumerator.cs
- RepeaterItemEventArgs.cs
- IPAddress.cs
- ContentElement.cs
- SecurityUtils.cs
- WebBrowserDocumentCompletedEventHandler.cs
- ConnectionsZone.cs
- RegexMatchCollection.cs
- Camera.cs
- X509Utils.cs
- LinearGradientBrush.cs
- KeyInstance.cs
- SafeFileHandle.cs
- ObfuscateAssemblyAttribute.cs
- XmlDataSourceView.cs
- SerializationInfo.cs
- PropertyChangedEventManager.cs
- RegexTree.cs
- ExpressionTextBox.xaml.cs
- Point3D.cs
- WmfPlaceableFileHeader.cs
- RootBrowserWindowAutomationPeer.cs
- HtmlInputText.cs
- MultipartContentParser.cs