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
- PrimarySelectionAdorner.cs
- EventRouteFactory.cs
- ContainerControl.cs
- ExpressionPrinter.cs
- ContainerVisual.cs
- CardSpacePolicyElement.cs
- QueryMatcher.cs
- OdbcStatementHandle.cs
- CustomError.cs
- ContextMenuService.cs
- WmiInstallComponent.cs
- HighlightComponent.cs
- ListViewSortEventArgs.cs
- WebServiceResponseDesigner.cs
- BindingList.cs
- GlyphInfoList.cs
- StreamGeometryContext.cs
- WMIInterop.cs
- UpWmlMobileTextWriter.cs
- XmlMessageFormatter.cs
- SoapTypeAttribute.cs
- BinaryExpression.cs
- ParsedAttributeCollection.cs
- UMPAttributes.cs
- IndependentAnimationStorage.cs
- UserNameSecurityTokenAuthenticator.cs
- UrlPropertyAttribute.cs
- ActionFrame.cs
- WindowsSolidBrush.cs
- PropertyToken.cs
- WrappedReader.cs
- DataPagerFieldCommandEventArgs.cs
- ControlParameter.cs
- CustomErrorCollection.cs
- XmlSchemaExporter.cs
- ChildTable.cs
- InvalidDataException.cs
- VirtualDirectoryMapping.cs
- StateManagedCollection.cs
- ReaderContextStackData.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- XMLUtil.cs
- XsltOutput.cs
- MimeTypeMapper.cs
- RubberbandSelector.cs
- FirewallWrapper.cs
- DirectoryInfo.cs
- PrimaryKeyTypeConverter.cs
- FontCollection.cs
- XPathConvert.cs
- DataGridLinkButton.cs
- StreamUpgradeInitiator.cs
- DataTemplateKey.cs
- Accessible.cs
- PathTooLongException.cs
- SqlClientMetaDataCollectionNames.cs
- GlyphTypeface.cs
- DeclarationUpdate.cs
- DataObjectFieldAttribute.cs
- HwndMouseInputProvider.cs
- PolicyException.cs
- SamlConditions.cs
- EventlogProvider.cs
- ColorConverter.cs
- SelectionEditor.cs
- ExpressionLexer.cs
- ObfuscateAssemblyAttribute.cs
- PseudoWebRequest.cs
- DataGridViewComponentPropertyGridSite.cs
- TabItem.cs
- WindowsScrollBarBits.cs
- CompilationAssemblyInstallComponent.cs
- SplineKeyFrames.cs
- XamlVector3DCollectionSerializer.cs
- ObsoleteAttribute.cs
- ToolStripContextMenu.cs
- __TransparentProxy.cs
- DeploymentSection.cs
- CodeComment.cs
- PrintPageEvent.cs
- MiniModule.cs
- lengthconverter.cs
- Error.cs
- HwndStylusInputProvider.cs
- RubberbandSelector.cs
- HttpAsyncResult.cs
- X509CertificateValidationMode.cs
- SQLDouble.cs
- ToolStripLocationCancelEventArgs.cs
- ListenerSingletonConnectionReader.cs
- ExecutionContext.cs
- DecimalSumAggregationOperator.cs
- HtmlInputControl.cs
- SqlProviderServices.cs
- ContainerFilterService.cs
- PersistenceTypeAttribute.cs
- HotCommands.cs
- UnsafeNativeMethods.cs
- ServiceChannelProxy.cs
- XmlnsDictionary.cs