Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / MoveSizeWinEventHandler.cs / 1305600 / MoveSizeWinEventHandler.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: MoveSizeWinEventHandler implementation. // // History: // 02/04/2005 : yutakas - 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
- FileEnumerator.cs
- ScriptManagerProxy.cs
- DBParameter.cs
- XslCompiledTransform.cs
- Queue.cs
- RequestCachingSection.cs
- Helpers.cs
- IndexOutOfRangeException.cs
- ComboBox.cs
- CapabilitiesRule.cs
- WindowsSpinner.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- XmlAttributeOverrides.cs
- PresentationTraceSources.cs
- WebCategoryAttribute.cs
- TripleDESCryptoServiceProvider.cs
- DomNameTable.cs
- DataColumnCollection.cs
- OracleConnectionFactory.cs
- ErrorHandler.cs
- OutputCacheSettings.cs
- SoapObjectReader.cs
- UnauthorizedAccessException.cs
- Region.cs
- IntPtr.cs
- SingleSelectRootGridEntry.cs
- CompositeDataBoundControl.cs
- ContextProperty.cs
- exports.cs
- MatrixTransform.cs
- PositiveTimeSpanValidator.cs
- RegexBoyerMoore.cs
- LinkDescriptor.cs
- CalloutQueueItem.cs
- MultiBinding.cs
- DataControlCommands.cs
- VideoDrawing.cs
- ImageMap.cs
- ColumnHeader.cs
- ElementUtil.cs
- PropertyToken.cs
- BasicExpandProvider.cs
- SessionSwitchEventArgs.cs
- SqlWorkflowInstanceStore.cs
- UnionCqlBlock.cs
- CalendarButtonAutomationPeer.cs
- ProfilePropertyNameValidator.cs
- WebConfigurationManager.cs
- ContainerUIElement3D.cs
- CachedFontFace.cs
- ObjectDataSource.cs
- TextClipboardData.cs
- SharedPerformanceCounter.cs
- ObjectStateEntryDbDataRecord.cs
- XmlProcessingInstruction.cs
- DecoderFallback.cs
- GridItemCollection.cs
- WebPartEditVerb.cs
- MembershipPasswordException.cs
- InfoCardAsymmetricCrypto.cs
- sapiproxy.cs
- XmlUtilWriter.cs
- ValidationHelpers.cs
- GiveFeedbackEvent.cs
- IIS7ConfigurationLoader.cs
- VerificationException.cs
- ObjectViewFactory.cs
- NativeCppClassAttribute.cs
- PrintPreviewControl.cs
- XmlNodeChangedEventArgs.cs
- ExpandableObjectConverter.cs
- SessionState.cs
- AppDomain.cs
- ResourceReferenceExpressionConverter.cs
- CellLabel.cs
- ExpressionParser.cs
- DataGridRowHeader.cs
- EdgeModeValidation.cs
- DocumentReference.cs
- FilePresentation.cs
- SocketException.cs
- InfoCardMetadataExchangeClient.cs
- SecurityTokenSpecification.cs
- HotSpotCollection.cs
- AdornerPresentationContext.cs
- PackageRelationshipSelector.cs
- WebPartEditorApplyVerb.cs
- DataMemberListEditor.cs
- WaitHandleCannotBeOpenedException.cs
- Translator.cs
- ControlBuilderAttribute.cs
- NullableLongMinMaxAggregationOperator.cs
- ArcSegment.cs
- SynchronizingStream.cs
- TableSectionStyle.cs
- DrawingServices.cs
- Internal.cs
- ExtenderControl.cs
- TextEndOfSegment.cs
- _AutoWebProxyScriptHelper.cs