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
- sqlnorm.cs
- DateTimeConverter.cs
- CompressStream.cs
- XmlC14NWriter.cs
- AggregatePushdown.cs
- XXXOnTypeBuilderInstantiation.cs
- FloaterParagraph.cs
- XomlCompilerResults.cs
- UnsafeNativeMethodsCLR.cs
- SelfIssuedAuthRSACryptoProvider.cs
- FirstMatchCodeGroup.cs
- DataSpaceManager.cs
- TreeNodeCollection.cs
- CallContext.cs
- RsaKeyIdentifierClause.cs
- StrokeNodeEnumerator.cs
- WebBrowser.cs
- FormsAuthenticationUserCollection.cs
- KeyboardDevice.cs
- NestPullup.cs
- CompoundFileStorageReference.cs
- X509Certificate2Collection.cs
- TreeNodeCollection.cs
- WebPartManagerInternals.cs
- NullRuntimeConfig.cs
- MultiAsyncResult.cs
- Currency.cs
- EventTask.cs
- SpecularMaterial.cs
- XmlSchema.cs
- DataGridAddNewRow.cs
- HttpServerUtilityWrapper.cs
- RoutedPropertyChangedEventArgs.cs
- FamilyMap.cs
- FileVersion.cs
- SelectedGridItemChangedEvent.cs
- WebPartEventArgs.cs
- InputProviderSite.cs
- XsdBuilder.cs
- AdCreatedEventArgs.cs
- AliasExpr.cs
- FaultDesigner.cs
- Validator.cs
- SqlTypeSystemProvider.cs
- Timeline.cs
- ActivityBuilder.cs
- DataMember.cs
- SrgsItemList.cs
- Paragraph.cs
- OrderPreservingSpoolingTask.cs
- CompensableActivity.cs
- XmlILConstructAnalyzer.cs
- DataGridViewColumnConverter.cs
- UnsafeNativeMethods.cs
- TimelineCollection.cs
- GeometryDrawing.cs
- TransactionTraceIdentifier.cs
- FormViewModeEventArgs.cs
- HttpRuntime.cs
- DragEvent.cs
- RtType.cs
- StylusButtonCollection.cs
- EncodingTable.cs
- NetworkAddressChange.cs
- TypeSystemProvider.cs
- DocobjHost.cs
- XmlAggregates.cs
- FlowDocumentView.cs
- WindowsAltTab.cs
- LicFileLicenseProvider.cs
- DataGridViewSelectedColumnCollection.cs
- DecimalAnimation.cs
- PlanCompilerUtil.cs
- ZoneIdentityPermission.cs
- SelfIssuedSamlTokenFactory.cs
- DesignerAdapterUtil.cs
- COM2IDispatchConverter.cs
- Identity.cs
- TrackingValidationObjectDictionary.cs
- SecurityPermission.cs
- TargetConverter.cs
- BaseHashHelper.cs
- Encoder.cs
- PluralizationServiceUtil.cs
- TextServicesPropertyRanges.cs
- SqlStream.cs
- DBAsyncResult.cs
- MethodToken.cs
- UnsafeCollabNativeMethods.cs
- DataGridDesigner.cs
- Matrix3DValueSerializer.cs
- Calendar.cs
- FtpWebRequest.cs
- nulltextcontainer.cs
- SingleConverter.cs
- RemotingException.cs
- TextProperties.cs
- DynamicContractTypeBuilder.cs
- Validator.cs
- TextUtf8RawTextWriter.cs