Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- DbSetClause.cs
- XsdDataContractExporter.cs
- DataViewManagerListItemTypeDescriptor.cs
- XPathAxisIterator.cs
- SynchronizedInputHelper.cs
- DirectionalLight.cs
- SafeNativeMethods.cs
- Processor.cs
- ItemsChangedEventArgs.cs
- DbMetaDataFactory.cs
- ListDataHelper.cs
- PersonalizableTypeEntry.cs
- TemplateControlCodeDomTreeGenerator.cs
- BitmapEffectCollection.cs
- StringDictionaryCodeDomSerializer.cs
- FixedTextBuilder.cs
- DataGridView.cs
- ipaddressinformationcollection.cs
- PkcsUtils.cs
- DependencyPropertyValueSerializer.cs
- RectangleHotSpot.cs
- DBDataPermissionAttribute.cs
- RTLAwareMessageBox.cs
- SrgsSubset.cs
- ConfigurationManagerInternalFactory.cs
- XmlBufferedByteStreamReader.cs
- EditingCommands.cs
- StrictAndMessageFilter.cs
- TemplateManager.cs
- TextFindEngine.cs
- SmtpMail.cs
- ErrorFormatterPage.cs
- TaskFormBase.cs
- AutomationAttributeInfo.cs
- XDeferredAxisSource.cs
- Queue.cs
- SqlGenericUtil.cs
- ListViewPagedDataSource.cs
- ApplicationManager.cs
- DependencySource.cs
- IncrementalReadDecoders.cs
- MenuItem.cs
- TreeViewItem.cs
- WebPartCatalogCloseVerb.cs
- XmlTextWriter.cs
- FileLevelControlBuilderAttribute.cs
- RadioButtonAutomationPeer.cs
- XslTransform.cs
- Hex.cs
- ContractCodeDomInfo.cs
- BitmapMetadataBlob.cs
- PassportIdentity.cs
- DataControlReference.cs
- ReturnEventArgs.cs
- DataGridrowEditEndingEventArgs.cs
- cookieexception.cs
- SqlDataSourceFilteringEventArgs.cs
- UnionCqlBlock.cs
- WinFormsComponentEditor.cs
- XslCompiledTransform.cs
- HttpCacheVary.cs
- EntityContainerEmitter.cs
- WebPageTraceListener.cs
- PlaceHolder.cs
- dbenumerator.cs
- ImageDrawing.cs
- GridViewHeaderRowPresenter.cs
- DrawingGroup.cs
- DocumentApplicationJournalEntry.cs
- Rotation3DKeyFrameCollection.cs
- XD.cs
- IIS7UserPrincipal.cs
- SiteOfOriginContainer.cs
- FamilyTypefaceCollection.cs
- Decorator.cs
- WhereaboutsReader.cs
- BmpBitmapDecoder.cs
- DocumentPageView.cs
- EncoderReplacementFallback.cs
- Accessible.cs
- JapaneseLunisolarCalendar.cs
- SHA512Managed.cs
- ListView.cs
- ErrorWrapper.cs
- BaseAddressElement.cs
- ProviderSettingsCollection.cs
- ToolStripScrollButton.cs
- SQLSingle.cs
- PropertyRecord.cs
- PrintPageEvent.cs
- ProfileGroupSettings.cs
- DetailsViewRowCollection.cs
- SQLBoolean.cs
- TrackBarRenderer.cs
- ConcurrentBag.cs
- MergeLocalizationDirectives.cs
- bindurihelper.cs
- Events.cs
- TraceInternal.cs
- CustomError.cs