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
- StaticContext.cs
- GetFileNameResult.cs
- PrintController.cs
- CroppedBitmap.cs
- RadioButton.cs
- DataServiceHost.cs
- ControlAdapter.cs
- HitTestParameters3D.cs
- Double.cs
- Listbox.cs
- CodeParameterDeclarationExpressionCollection.cs
- DirectoryNotFoundException.cs
- DbXmlEnabledProviderManifest.cs
- controlskin.cs
- BigInt.cs
- TextTreeInsertElementUndoUnit.cs
- ObjectDisposedException.cs
- ExpressionBindingCollection.cs
- SoapReflectionImporter.cs
- DesignerCategoryAttribute.cs
- EditableTreeList.cs
- BitmapCodecInfo.cs
- DataGridPagerStyle.cs
- DataPagerCommandEventArgs.cs
- UnsafeNativeMethods.cs
- NativeMethods.cs
- MobileControl.cs
- OpenTypeLayout.cs
- TreeChangeInfo.cs
- datacache.cs
- SubMenuStyle.cs
- ResourceType.cs
- BamlRecords.cs
- VerticalAlignConverter.cs
- EmptyStringExpandableObjectConverter.cs
- CustomLineCap.cs
- ObjectItemCollection.cs
- InfoCardSymmetricAlgorithm.cs
- DataKey.cs
- DbDataSourceEnumerator.cs
- DataGridRow.cs
- Attributes.cs
- ErrorInfoXmlDocument.cs
- StringValidatorAttribute.cs
- RowsCopiedEventArgs.cs
- CancellationHandlerDesigner.cs
- DefaultMemberAttribute.cs
- Encoder.cs
- RandomNumberGenerator.cs
- PropertyGeneratedEventArgs.cs
- TargetPerspective.cs
- StartUpEventArgs.cs
- ControlParameter.cs
- ScaleTransform.cs
- XmlTextAttribute.cs
- PrintingPermissionAttribute.cs
- GenericIdentity.cs
- TextDecorationUnitValidation.cs
- FacetValueContainer.cs
- TextServicesDisplayAttributePropertyRanges.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SelectionProcessor.cs
- DesignerView.cs
- XmlUrlResolver.cs
- ResourceDisplayNameAttribute.cs
- DbConvert.cs
- ManagementException.cs
- CodeIndexerExpression.cs
- StylusPointProperties.cs
- Comparer.cs
- FacetChecker.cs
- TemplateControl.cs
- TiffBitmapDecoder.cs
- TextLineBreak.cs
- ExpressionBinding.cs
- ValueTable.cs
- DeferredTextReference.cs
- Roles.cs
- TemplateInstanceAttribute.cs
- DockingAttribute.cs
- RawStylusInput.cs
- ConfigurationValues.cs
- ServiceBuildProvider.cs
- CodeAttributeArgumentCollection.cs
- CodeIndexerExpression.cs
- TreeView.cs
- Table.cs
- TextMetrics.cs
- ListItemConverter.cs
- ButtonBaseAdapter.cs
- GraphicsContainer.cs
- DPAPIProtectedConfigurationProvider.cs
- SafeUserTokenHandle.cs
- DataListGeneralPage.cs
- PersonalizablePropertyEntry.cs
- SchemaNotation.cs
- DetailsViewUpdateEventArgs.cs
- EdmComplexPropertyAttribute.cs
- WindowsGraphics2.cs
- PartitionedStreamMerger.cs