Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Documents / MoveSizeWinEventHandler.cs / 2 / MoveSizeWinEventHandler.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: MoveSizeWinEventHandler implementation. // // History: // 02/04/2005 : [....] - created. // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using MS.Win32; using MS.Internal; namespace System.Windows.Documents { internal class MoveSizeWinEventHandler : WinEventHandler { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors // ctor that takes a range of events internal MoveSizeWinEventHandler() : base(NativeMethods.EVENT_SYSTEM_MOVESIZEEND, NativeMethods.EVENT_SYSTEM_MOVESIZEEND) { } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods // Register text store that will receive move/sice event. internal void RegisterTextStore(TextStore textstore) { if (_arTextStore == null) { _arTextStore = new ArrayList(1); } _arTextStore.Add(textstore); } // Unregister text store. internal void UnregisterTextStore(TextStore textstore) { _arTextStore.Remove(textstore); } // The callback from WinEvent. ////// Critical - as this invokes Critical method CriticalSourceHwnd /// TreatAsSafe - as this doesn't expose this information but just calls OnLayoutUpdated on the TextStore. /// [SecurityCritical, SecurityTreatAsSafe] internal override void WinEventProc(int eventId, IntPtr hwnd) { Invariant.Assert(eventId == NativeMethods.EVENT_SYSTEM_MOVESIZEEND); if (_arTextStore != null) { for (int i = 0; i < _arTextStore.Count; i++) { bool notified = false; TextStore textstore = (TextStore)_arTextStore[i]; IntPtr hwndTemp = textstore.CriticalSourceWnd; while (hwndTemp != IntPtr.Zero) { if (hwnd == hwndTemp) { // Only when the parent window of the source of this TextStore is // moved or resized, we notfiy to Cicero. textstore.OnLayoutUpdated(); notified = true; break; } hwndTemp = UnsafeNativeMethods.GetParent(new HandleRef(this, hwndTemp)); } if (!notified) textstore.MakeLayoutChangeOnGotFocus(); } } } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties // Number of TextStores listening to this event. internal int TextStoreCount { get { return _arTextStore.Count; } } #endregion Internal Properties //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields // list of the registered TextStores. private ArrayList _arTextStore; #endregion Private Fields } } // 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
- LoginUtil.cs
- QueryExpr.cs
- FormViewUpdateEventArgs.cs
- ModelTreeEnumerator.cs
- StylusOverProperty.cs
- SmtpReplyReader.cs
- MergeEnumerator.cs
- WindowsFormsSynchronizationContext.cs
- XmlSchemaParticle.cs
- QilExpression.cs
- PresentationAppDomainManager.cs
- XPathQueryGenerator.cs
- ApplicationInfo.cs
- XmlAttribute.cs
- KoreanCalendar.cs
- EqualityComparer.cs
- DbParameterCollection.cs
- GlyphTypeface.cs
- UnrecognizedAssertionsBindingElement.cs
- FrameworkReadOnlyPropertyMetadata.cs
- StagingAreaInputItem.cs
- PageContentCollection.cs
- CompilationUtil.cs
- Panel.cs
- FormsAuthenticationUserCollection.cs
- PropagatorResult.cs
- SevenBitStream.cs
- FileInfo.cs
- Binding.cs
- EventBookmark.cs
- PagesChangedEventArgs.cs
- HandlerFactoryWrapper.cs
- HttpCapabilitiesSectionHandler.cs
- SimpleType.cs
- VisualStyleRenderer.cs
- arclist.cs
- DoubleLink.cs
- ParserOptions.cs
- AlphaSortedEnumConverter.cs
- NameGenerator.cs
- CacheForPrimitiveTypes.cs
- XXXInfos.cs
- XamlFxTrace.cs
- KnownBoxes.cs
- Matrix3DStack.cs
- MemberAccessException.cs
- ListViewEditEventArgs.cs
- OleDbDataAdapter.cs
- SelectionItemPatternIdentifiers.cs
- TransformValueSerializer.cs
- SmtpMail.cs
- Int16AnimationUsingKeyFrames.cs
- PrtTicket_Base.cs
- UnknownBitmapDecoder.cs
- ChtmlTextWriter.cs
- PaintValueEventArgs.cs
- ClientUrlResolverWrapper.cs
- ApplyImportsAction.cs
- ZipIOExtraFieldElement.cs
- ChineseLunisolarCalendar.cs
- AudioException.cs
- EmptyReadOnlyDictionaryInternal.cs
- Contracts.cs
- DependencyPropertyDescriptor.cs
- AsymmetricKeyExchangeDeformatter.cs
- TrackingProfile.cs
- MachineKeySection.cs
- ObjectSecurity.cs
- TextOptionsInternal.cs
- PropertyGrid.cs
- DataGridViewCellParsingEventArgs.cs
- GatewayDefinition.cs
- WsdlParser.cs
- HandlerBase.cs
- XpsDocument.cs
- LambdaCompiler.Lambda.cs
- DelimitedListTraceListener.cs
- DbMetaDataColumnNames.cs
- KeySplineConverter.cs
- DebuggerAttributes.cs
- BasePattern.cs
- DocumentViewerBaseAutomationPeer.cs
- ImageListStreamer.cs
- GridViewRowEventArgs.cs
- GridViewRowPresenter.cs
- InternalBufferOverflowException.cs
- BindingValueChangedEventArgs.cs
- WarningException.cs
- SecurityToken.cs
- BuildProviderCollection.cs
- InputScope.cs
- BitmapCodecInfo.cs
- RowToParametersTransformer.cs
- BookmarkScopeHandle.cs
- ProcessThread.cs
- ViewUtilities.cs
- GridViewCommandEventArgs.cs
- SemanticAnalyzer.cs
- ReferencedAssemblyResolver.cs
- FormsAuthenticationUser.cs