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
- MachineKeyConverter.cs
- MetaType.cs
- ToolStripLocationCancelEventArgs.cs
- StatusBarItem.cs
- ValidationPropertyAttribute.cs
- TemplateBindingExtensionConverter.cs
- ConfigViewGenerator.cs
- _NestedSingleAsyncResult.cs
- ReadingWritingEntityEventArgs.cs
- WebReferenceCollection.cs
- EmptyQuery.cs
- StringStorage.cs
- ActivationServices.cs
- SafeViewOfFileHandle.cs
- ResolvedKeyFrameEntry.cs
- HttpResponse.cs
- streamingZipPartStream.cs
- securitymgrsite.cs
- ValueUtilsSmi.cs
- TextStore.cs
- TrackingLocationCollection.cs
- ToolStripContainer.cs
- DBCommandBuilder.cs
- HtmlEmptyTagControlBuilder.cs
- ParameterExpression.cs
- Stackframe.cs
- StructuredProperty.cs
- StrongName.cs
- ProfilePropertyNameValidator.cs
- CommandTreeTypeHelper.cs
- Matrix.cs
- CompiledRegexRunnerFactory.cs
- DataViewManagerListItemTypeDescriptor.cs
- SelectionChangedEventArgs.cs
- OneOfElement.cs
- OleDbError.cs
- ProfileBuildProvider.cs
- PageVisual.cs
- ObjectListField.cs
- TaskResultSetter.cs
- DataGridViewCellPaintingEventArgs.cs
- UserPreferenceChangedEventArgs.cs
- SqlCacheDependencyDatabaseCollection.cs
- Unit.cs
- VisualStyleTypesAndProperties.cs
- DesignerTransactionCloseEvent.cs
- RoleBoolean.cs
- NavigationFailedEventArgs.cs
- UTF32Encoding.cs
- PersonalizationDictionary.cs
- WebBrowserProgressChangedEventHandler.cs
- AssertUtility.cs
- MbpInfo.cs
- DesignTimeDataBinding.cs
- ParameterInfo.cs
- MessageSecurityVersion.cs
- SetterBase.cs
- XPathCompileException.cs
- ComboBox.cs
- QuotaThrottle.cs
- QueuePathDialog.cs
- PreservationFileWriter.cs
- xdrvalidator.cs
- XmlBaseReader.cs
- FieldInfo.cs
- Int64.cs
- TextTreeTextNode.cs
- MetaModel.cs
- AnnotationStore.cs
- GPRECT.cs
- BaseDataBoundControlDesigner.cs
- XmlChildNodes.cs
- CollectionViewGroup.cs
- WebPartConnection.cs
- KeyedHashAlgorithm.cs
- ChtmlMobileTextWriter.cs
- SecurityManager.cs
- DataColumn.cs
- TemplateNameScope.cs
- PackageController.cs
- Receive.cs
- SectionRecord.cs
- AttributeUsageAttribute.cs
- PackUriHelper.cs
- EditorPart.cs
- ReadOnlyCollection.cs
- CompatibleIComparer.cs
- UserControl.cs
- ResourceSet.cs
- CombinedGeometry.cs
- XmlReader.cs
- Grid.cs
- CollectionChangeEventArgs.cs
- DbDataRecord.cs
- EventDescriptorCollection.cs
- BaseDataBoundControl.cs
- ModelItemCollection.cs
- dtdvalidator.cs
- PerformanceCounter.cs
- StrokeNodeOperations.cs