Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- ImageSourceValueSerializer.cs
- ObjectListDataBindEventArgs.cs
- ExpressionCopier.cs
- ListGeneralPage.cs
- Rotation3D.cs
- ResourcePermissionBase.cs
- HttpRequestMessageProperty.cs
- ToolStripScrollButton.cs
- HttpServerVarsCollection.cs
- DesignerRegionCollection.cs
- invalidudtexception.cs
- cookiecontainer.cs
- SafeNativeMethods.cs
- DataBindingHandlerAttribute.cs
- ConnectionManagementSection.cs
- HtmlTextArea.cs
- filewebresponse.cs
- LogAppendAsyncResult.cs
- DiffuseMaterial.cs
- PersonalizationProviderHelper.cs
- HtmlTextArea.cs
- DataObjectEventArgs.cs
- DataListAutoFormat.cs
- MemberHolder.cs
- ElementAction.cs
- UriSection.cs
- AnnotationMap.cs
- ConfigurationStrings.cs
- FileLogRecordStream.cs
- TypeConverters.cs
- HierarchicalDataSourceDesigner.cs
- InstallerTypeAttribute.cs
- ZoomPercentageConverter.cs
- InputReportEventArgs.cs
- DockPattern.cs
- ProviderBase.cs
- infer.cs
- WhitespaceReader.cs
- AssociatedControlConverter.cs
- AddInEnvironment.cs
- ParameterToken.cs
- MenuItemBindingCollection.cs
- RtfToXamlLexer.cs
- HeaderedItemsControl.cs
- ArgumentFixer.cs
- ErrorTableItemStyle.cs
- TextParaLineResult.cs
- ItemTypeToolStripMenuItem.cs
- FlowDocumentView.cs
- KeyInfo.cs
- DataGridViewRowConverter.cs
- EventData.cs
- InstanceLockQueryResult.cs
- AdornerDecorator.cs
- WebPartCatalogAddVerb.cs
- BamlLocalizer.cs
- ValueExpressions.cs
- HandleCollector.cs
- DataGridViewComboBoxColumn.cs
- RefreshEventArgs.cs
- StylusPointPropertyUnit.cs
- AvTraceFormat.cs
- HMACMD5.cs
- SafeArrayRankMismatchException.cs
- WorkItem.cs
- Utility.cs
- MimeTextImporter.cs
- Rect3DConverter.cs
- DriveNotFoundException.cs
- DesignerActionPropertyItem.cs
- ConnectivityStatus.cs
- ReachSerializerAsync.cs
- BitSet.cs
- SmtpDateTime.cs
- FileLevelControlBuilderAttribute.cs
- DataTablePropertyDescriptor.cs
- HtmlControlPersistable.cs
- DataBinder.cs
- Validator.cs
- QilFactory.cs
- OleDbException.cs
- ObjectSecurity.cs
- ClientConfigurationHost.cs
- DependencySource.cs
- XamlWriter.cs
- TickBar.cs
- Rect3D.cs
- Inflater.cs
- documentsequencetextcontainer.cs
- WindowsFormsSectionHandler.cs
- QilLiteral.cs
- ListViewItemSelectionChangedEvent.cs
- TargetControlTypeCache.cs
- ObjectStateFormatter.cs
- DockingAttribute.cs
- SimpleHandlerFactory.cs
- CodeTypeDelegate.cs
- ExpressionPrefixAttribute.cs
- MediaElement.cs
- FuncCompletionCallbackWrapper.cs