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
- ApplicationDirectory.cs
- TextElementEnumerator.cs
- OleDbDataReader.cs
- AutomationElementCollection.cs
- ConnectionProviderAttribute.cs
- ZipIOCentralDirectoryFileHeader.cs
- ClrProviderManifest.cs
- WindowsGraphicsCacheManager.cs
- Util.cs
- SliderAutomationPeer.cs
- infer.cs
- CounterCreationDataCollection.cs
- CodeObject.cs
- EdmConstants.cs
- ScrollableControl.cs
- ChannelServices.cs
- CssClassPropertyAttribute.cs
- PseudoWebRequest.cs
- DataObjectPastingEventArgs.cs
- XmlSchemaAttribute.cs
- FaultConverter.cs
- NavigatorOutput.cs
- BinHexEncoding.cs
- PersistChildrenAttribute.cs
- SamlSubjectStatement.cs
- PolygonHotSpot.cs
- CryptoKeySecurity.cs
- UnmanagedHandle.cs
- CommandPlan.cs
- CacheModeConverter.cs
- TransactionException.cs
- DESCryptoServiceProvider.cs
- CommonXSendMessage.cs
- FormViewCommandEventArgs.cs
- BaseTemplateCodeDomTreeGenerator.cs
- DataMisalignedException.cs
- CodeDirectionExpression.cs
- SqlDataSourceSelectingEventArgs.cs
- MultiPropertyDescriptorGridEntry.cs
- CodeDirectionExpression.cs
- DataStorage.cs
- PropertyEmitterBase.cs
- Message.cs
- WorkflowServiceInstance.cs
- CultureTable.cs
- StandardRuntimeEnumValidatorAttribute.cs
- SafeIUnknown.cs
- NetMsmqSecurity.cs
- AttributeCollection.cs
- Button.cs
- SkewTransform.cs
- SiteMapProvider.cs
- ToolboxComponentsCreatedEventArgs.cs
- LocatorBase.cs
- StringComparer.cs
- PointAnimation.cs
- HorizontalAlignConverter.cs
- Condition.cs
- XLinq.cs
- BatchServiceHost.cs
- BitmapData.cs
- ForwardPositionQuery.cs
- ChildDocumentBlock.cs
- ByteFacetDescriptionElement.cs
- MD5CryptoServiceProvider.cs
- AdRotator.cs
- BoolExpression.cs
- WindowsSpinner.cs
- SignedInfo.cs
- XmlDataDocument.cs
- NCryptSafeHandles.cs
- DummyDataSource.cs
- PersonalizablePropertyEntry.cs
- ObjectSet.cs
- FormatConvertedBitmap.cs
- ToolstripProfessionalRenderer.cs
- DispatchOperationRuntime.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- TableProviderWrapper.cs
- CallbackTimeoutsBehavior.cs
- HtmlContainerControl.cs
- RichTextBoxAutomationPeer.cs
- ClrPerspective.cs
- LayoutManager.cs
- XPathBinder.cs
- StylusLogic.cs
- CompilationUtil.cs
- TabOrder.cs
- Base64Encoder.cs
- OptionalColumn.cs
- MutableAssemblyCacheEntry.cs
- MessageBuilder.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- BinaryParser.cs
- NativeMethods.cs
- DataGridViewComboBoxEditingControl.cs
- SecurityDescriptor.cs
- XPathParser.cs
- ColumnClickEvent.cs
- IdentityNotMappedException.cs