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
- RoleServiceManager.cs
- Column.cs
- HtmlShim.cs
- DescendentsWalker.cs
- ExpressionBuilder.cs
- KeyNameIdentifierClause.cs
- SelectionEditingBehavior.cs
- KeyboardNavigation.cs
- FileSystemEventArgs.cs
- LogManagementAsyncResult.cs
- DynamicILGenerator.cs
- SqlInternalConnectionSmi.cs
- URI.cs
- DataViewSettingCollection.cs
- RequestResizeEvent.cs
- PropertyMapper.cs
- DbExpressionVisitor.cs
- LocatorPart.cs
- sqlnorm.cs
- CmsUtils.cs
- TableLayoutStyleCollection.cs
- SemanticBasicElement.cs
- WindowsImpersonationContext.cs
- TemplateBindingExtension.cs
- ProfileManager.cs
- ToolboxComponentsCreatingEventArgs.cs
- ByteAnimation.cs
- StreamReader.cs
- Int32CollectionValueSerializer.cs
- ValidatorCompatibilityHelper.cs
- SelectionList.cs
- HttpCachePolicyBase.cs
- FileUpload.cs
- Vector3DCollection.cs
- InvalidAsynchronousStateException.cs
- ReservationNotFoundException.cs
- Base64WriteStateInfo.cs
- StringResourceManager.cs
- CfgRule.cs
- ConsoleTraceListener.cs
- KeyedHashAlgorithm.cs
- TextBlockAutomationPeer.cs
- NullableIntSumAggregationOperator.cs
- DebuggerService.cs
- ConnectionStringSettingsCollection.cs
- CalloutQueueItem.cs
- MatrixTransform.cs
- TemplateKey.cs
- RuntimeConfigLKG.cs
- GregorianCalendarHelper.cs
- CaseExpr.cs
- ValidationHelper.cs
- HttpDebugHandler.cs
- ResolvedKeyFrameEntry.cs
- mansign.cs
- CursorConverter.cs
- CodeTypeMemberCollection.cs
- HitTestDrawingContextWalker.cs
- Visual.cs
- Button.cs
- XmlSchemaComplexType.cs
- Style.cs
- ShutDownListener.cs
- CodeTryCatchFinallyStatement.cs
- _SecureChannel.cs
- InheritanceAttribute.cs
- _CommandStream.cs
- MarshalByValueComponent.cs
- QueryStringParameter.cs
- TableItemPattern.cs
- EqualityComparer.cs
- ChangeTracker.cs
- StringPropertyBuilder.cs
- ExtenderProvidedPropertyAttribute.cs
- Part.cs
- PermissionSet.cs
- DoubleCollection.cs
- DerivedKeySecurityTokenStub.cs
- ErrorHandler.cs
- StylusEventArgs.cs
- RsaSecurityToken.cs
- FrameSecurityDescriptor.cs
- DbCommandDefinition.cs
- DataGridViewTextBoxCell.cs
- XsltArgumentList.cs
- NamespaceCollection.cs
- DefaultValueAttribute.cs
- ImageMap.cs
- NullableDoubleSumAggregationOperator.cs
- SqlParameterizer.cs
- GenericTextProperties.cs
- EntitySqlQueryBuilder.cs
- SQLInt32.cs
- InstalledVoice.cs
- SynchronizedDispatch.cs
- SerializationAttributes.cs
- DuplexChannelFactory.cs
- BamlBinaryReader.cs
- FrugalList.cs
- RectangleF.cs