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
- MailBnfHelper.cs
- DPTypeDescriptorContext.cs
- Types.cs
- RegexGroup.cs
- LinqTreeNodeEvaluator.cs
- UndoManager.cs
- TimeSpanSecondsConverter.cs
- TextCompositionManager.cs
- MD5.cs
- TextParaClient.cs
- WindowsFormsSectionHandler.cs
- OutputCacheModule.cs
- DispatcherFrame.cs
- Stack.cs
- SafePEFileHandle.cs
- FlowLayoutPanelDesigner.cs
- TransformFinalBlockRequest.cs
- SqlUnionizer.cs
- SQLStringStorage.cs
- IdentitySection.cs
- FontStyleConverter.cs
- HttpTransportSecurity.cs
- ShapeTypeface.cs
- GPPOINTF.cs
- CellNormalizer.cs
- ImplicitInputBrush.cs
- RegistrySecurity.cs
- XmlIlGenerator.cs
- EndpointDispatcherTable.cs
- Attributes.cs
- ControlBindingsConverter.cs
- WebSysDescriptionAttribute.cs
- ToolStripDesignerAvailabilityAttribute.cs
- FixedPageProcessor.cs
- SoapTypeAttribute.cs
- ComplexLine.cs
- PropertiesTab.cs
- DbConnectionPoolGroup.cs
- CalendarModeChangedEventArgs.cs
- ParagraphResult.cs
- FormViewDeleteEventArgs.cs
- sortedlist.cs
- SchemaComplexType.cs
- MasterPageBuildProvider.cs
- ItemCheckEvent.cs
- XsdDateTime.cs
- StrokeCollection2.cs
- MDIWindowDialog.cs
- SamlAssertionKeyIdentifierClause.cs
- SrgsRuleRef.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ValidatedControlConverter.cs
- TypedMessageConverter.cs
- InternalPolicyElement.cs
- PenThread.cs
- SuppressIldasmAttribute.cs
- MessageRpc.cs
- GC.cs
- Point4D.cs
- CryptoHandle.cs
- AuthenticationModuleElementCollection.cs
- ObsoleteAttribute.cs
- ExtentKey.cs
- BaseUriHelper.cs
- NominalTypeEliminator.cs
- StructuralType.cs
- PathTooLongException.cs
- ColorInterpolationModeValidation.cs
- GridPattern.cs
- keycontainerpermission.cs
- ClosableStream.cs
- XomlCompilerResults.cs
- CodeTryCatchFinallyStatement.cs
- XhtmlBasicValidationSummaryAdapter.cs
- ObjectPersistData.cs
- TextWriter.cs
- BCLDebug.cs
- SrgsGrammarCompiler.cs
- SplitterCancelEvent.cs
- ExpressionParser.cs
- MethodBuilder.cs
- PostBackTrigger.cs
- ErrorHandler.cs
- HostProtectionPermission.cs
- PanelDesigner.cs
- NativeMethods.cs
- TemplateBaseAction.cs
- PlatformCulture.cs
- QueryReaderSettings.cs
- RoleGroup.cs
- ZipIOExtraFieldElement.cs
- ControlUtil.cs
- _HelperAsyncResults.cs
- RegexReplacement.cs
- ExtractorMetadata.cs
- QueryProcessor.cs
- XsltConvert.cs
- Matrix3D.cs
- DoubleSumAggregationOperator.cs
- IPPacketInformation.cs