Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / Documents / MoveSizeWinEventHandler.cs / 1 / 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. //---------------------------------------------------------------------------- // //// 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
- MediaTimeline.cs
- MediaElementAutomationPeer.cs
- XhtmlBasicValidationSummaryAdapter.cs
- HierarchicalDataSourceConverter.cs
- XsltQilFactory.cs
- IPGlobalProperties.cs
- SystemColors.cs
- MobileUserControlDesigner.cs
- DateTimeOffsetConverter.cs
- InspectionWorker.cs
- TextRange.cs
- TriggerAction.cs
- CellParagraph.cs
- EmptyElement.cs
- _UriSyntax.cs
- DragCompletedEventArgs.cs
- ZipIOBlockManager.cs
- DrawingVisual.cs
- PropertyGridView.cs
- StringConverter.cs
- Panel.cs
- FilterElement.cs
- ReferencedAssembly.cs
- ApplicationSecurityManager.cs
- DocumentGrid.cs
- TextTreeInsertElementUndoUnit.cs
- OrthographicCamera.cs
- BuiltInExpr.cs
- FrameworkTextComposition.cs
- DataGridCellClipboardEventArgs.cs
- HttpCacheVaryByContentEncodings.cs
- ExtenderControl.cs
- DocumentPageTextView.cs
- TypeElementCollection.cs
- KnownTypesHelper.cs
- SQLBytesStorage.cs
- BaseDataListDesigner.cs
- PersistenceContext.cs
- Propagator.cs
- IncrementalReadDecoders.cs
- BezierSegment.cs
- DownloadProgressEventArgs.cs
- AssemblyNameProxy.cs
- XmlWrappingReader.cs
- TreeViewDesigner.cs
- RootBrowserWindow.cs
- MessageBodyDescription.cs
- ScrollEvent.cs
- WebScriptEnablingElement.cs
- MetadataCache.cs
- XmlValueConverter.cs
- XmlDataSourceView.cs
- SqlConnectionStringBuilder.cs
- CalendarAutomationPeer.cs
- QilValidationVisitor.cs
- InkPresenter.cs
- ApplicationDirectory.cs
- TypefaceMetricsCache.cs
- DataBoundControlHelper.cs
- DataBindingExpressionBuilder.cs
- SafePEFileHandle.cs
- translator.cs
- DataGridViewCellFormattingEventArgs.cs
- InvalidPropValue.cs
- DataPagerFieldCommandEventArgs.cs
- keycontainerpermission.cs
- Message.cs
- MinimizableAttributeTypeConverter.cs
- ProfileService.cs
- TextChangedEventArgs.cs
- DataSvcMapFile.cs
- ToolStripButton.cs
- CommandManager.cs
- XmlDataSourceNodeDescriptor.cs
- RenderOptions.cs
- BoolExpr.cs
- RotationValidation.cs
- sqlinternaltransaction.cs
- CustomCredentialPolicy.cs
- HttpStreamFormatter.cs
- CharAnimationUsingKeyFrames.cs
- SendMailErrorEventArgs.cs
- GroupBox.cs
- QilNode.cs
- DataServiceResponse.cs
- DecoratedNameAttribute.cs
- TextViewSelectionProcessor.cs
- NativeMethods.cs
- ModuleBuilder.cs
- CodeCommentStatement.cs
- TextElementCollectionHelper.cs
- BitStack.cs
- ZipIOModeEnforcingStream.cs
- HttpServerVarsCollection.cs
- LocalFileSettingsProvider.cs
- DataGridTableCollection.cs
- FrameworkContentElement.cs
- RenderingEventArgs.cs
- ListBoxDesigner.cs
- Rules.cs