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
- WindowsStartMenu.cs
- NumberAction.cs
- ImageButton.cs
- ToolStripRenderer.cs
- SendMailErrorEventArgs.cs
- HttpModuleCollection.cs
- PropertyNames.cs
- TextTreeUndoUnit.cs
- BamlRecords.cs
- ModuleConfigurationInfo.cs
- OrderPreservingPipeliningMergeHelper.cs
- DomNameTable.cs
- XmlValidatingReaderImpl.cs
- ProbeMatchesCD1.cs
- CopyAction.cs
- FormViewDeleteEventArgs.cs
- WebPartDisplayModeCancelEventArgs.cs
- ComboBoxItem.cs
- BindingExpressionBase.cs
- MobileControl.cs
- SmiRequestExecutor.cs
- CustomCredentialPolicy.cs
- BatchServiceHost.cs
- DrawItemEvent.cs
- unsafenativemethodsother.cs
- KerberosSecurityTokenAuthenticator.cs
- SystemBrushes.cs
- UIElementPropertyUndoUnit.cs
- FullTextBreakpoint.cs
- WebPartConnectionsConnectVerb.cs
- MimeMapping.cs
- _SingleItemRequestCache.cs
- ReferencedCollectionType.cs
- DbParameterHelper.cs
- Win32.cs
- WindowsGraphicsWrapper.cs
- ResourceCategoryAttribute.cs
- DrawTreeNodeEventArgs.cs
- DeferredRunTextReference.cs
- DeadLetterQueue.cs
- ConsumerConnectionPointCollection.cs
- ListCollectionView.cs
- DefaultProxySection.cs
- DocumentsTrace.cs
- XamlWriter.cs
- WsatAdminException.cs
- WebPartConnectionCollection.cs
- AnnotationResourceCollection.cs
- GridViewUpdateEventArgs.cs
- ScriptingScriptResourceHandlerSection.cs
- SourceFilter.cs
- VisualBasicReference.cs
- entityreference_tresulttype.cs
- ToolStripEditorManager.cs
- ExecutedRoutedEventArgs.cs
- StorageEntityContainerMapping.cs
- XmlProcessingInstruction.cs
- WorkflowFileItem.cs
- CleanUpVirtualizedItemEventArgs.cs
- Column.cs
- TextBlockAutomationPeer.cs
- FacetDescriptionElement.cs
- WebServiceParameterData.cs
- ViewStateException.cs
- nulltextcontainer.cs
- ConfigXmlText.cs
- HttpWebResponse.cs
- ApplicationBuildProvider.cs
- CurrentChangingEventArgs.cs
- CompilerScope.cs
- Serializer.cs
- DoubleAnimationUsingKeyFrames.cs
- HtmlForm.cs
- ApplicationCommands.cs
- AccessKeyManager.cs
- CodeSnippetCompileUnit.cs
- FilterEventArgs.cs
- HttpValueCollection.cs
- AspCompat.cs
- CatalogPartChrome.cs
- CodeMemberMethod.cs
- SqlUnionizer.cs
- Stacktrace.cs
- QuotaExceededException.cs
- TreeNodeBindingCollection.cs
- SqlRowUpdatedEvent.cs
- __Error.cs
- DataServiceSaveChangesEventArgs.cs
- SimpleHandlerFactory.cs
- MenuStrip.cs
- XmlStreamStore.cs
- XPathDescendantIterator.cs
- EntityReference.cs
- PolyLineSegment.cs
- FontWeight.cs
- ConfigurationConverterBase.cs
- UrlMapping.cs
- WebPart.cs
- SiteMapProvider.cs
- CmsInterop.cs