Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / RoutedEventHandlerInfo.cs / 1305600 / 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
- ServerIdentity.cs
- FlowDocumentView.cs
- sqlstateclientmanager.cs
- BinaryObjectInfo.cs
- ProxyWebPartManager.cs
- GenericQueueSurrogate.cs
- SmtpMail.cs
- UserPreferenceChangingEventArgs.cs
- WebServiceFault.cs
- TraceSwitch.cs
- WS2007FederationHttpBindingElement.cs
- DataGridComboBoxColumn.cs
- DPTypeDescriptorContext.cs
- BrowserDefinition.cs
- WebBodyFormatMessageProperty.cs
- WebControlAdapter.cs
- FamilyTypefaceCollection.cs
- _SSPIWrapper.cs
- CodeGen.cs
- SettingsPropertyNotFoundException.cs
- CodeAttachEventStatement.cs
- DefaultBindingPropertyAttribute.cs
- IndexingContentUnit.cs
- Border.cs
- SelectionRangeConverter.cs
- Query.cs
- TraceLog.cs
- WebDisplayNameAttribute.cs
- MessageQueueTransaction.cs
- updateconfighost.cs
- ISAPIWorkerRequest.cs
- WriterOutput.cs
- FrameworkTextComposition.cs
- Compiler.cs
- CodeSubDirectory.cs
- Localizer.cs
- XPathConvert.cs
- DBAsyncResult.cs
- TabControl.cs
- HotSpot.cs
- MexTcpBindingElement.cs
- ProcessModuleCollection.cs
- NameObjectCollectionBase.cs
- ItemPager.cs
- FillBehavior.cs
- FixedSOMTableRow.cs
- QueueProcessor.cs
- Track.cs
- GregorianCalendar.cs
- Parameter.cs
- Authorization.cs
- WhereaboutsReader.cs
- AppDomainAttributes.cs
- SchemaLookupTable.cs
- RegexTree.cs
- ConfigsHelper.cs
- SqlConnectionHelper.cs
- MultiView.cs
- TransformerTypeCollection.cs
- Typography.cs
- WebServiceResponseDesigner.cs
- DateTimeUtil.cs
- MetadataUtilsSmi.cs
- EntityContainer.cs
- BrowserCapabilitiesCodeGenerator.cs
- CodeFieldReferenceExpression.cs
- ObjectDataSourceDisposingEventArgs.cs
- ProviderCollection.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- EndPoint.cs
- AxWrapperGen.cs
- ConnectionStringsSection.cs
- CodeTypeParameterCollection.cs
- ClusterSafeNativeMethods.cs
- NameValueCollection.cs
- PageSetupDialog.cs
- MLangCodePageEncoding.cs
- ResourceKey.cs
- OciLobLocator.cs
- DrawingContextDrawingContextWalker.cs
- Base64Encoding.cs
- SignedXml.cs
- PageThemeParser.cs
- ScriptResourceHandler.cs
- FloaterBaseParagraph.cs
- MimeParameterWriter.cs
- InvalidOleVariantTypeException.cs
- JobDuplex.cs
- StandardBindingOptionalReliableSessionElement.cs
- ScrollBarAutomationPeer.cs
- RegexParser.cs
- _ListenerAsyncResult.cs
- httpstaticobjectscollection.cs
- Utils.cs
- IERequestCache.cs
- AssemblyBuilder.cs
- SerializerWriterEventHandlers.cs
- LineInfo.cs
- RtType.cs
- DataView.cs