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
- ControlBindingsCollection.cs
- NumberFormatInfo.cs
- Transform3DCollection.cs
- DesignerCommandSet.cs
- DataGridViewRowHeaderCell.cs
- DataSourceControl.cs
- XmlConvert.cs
- TargetControlTypeAttribute.cs
- SatelliteContractVersionAttribute.cs
- CircleHotSpot.cs
- TextAction.cs
- DateTimeValueSerializerContext.cs
- ComponentConverter.cs
- UIElement.cs
- SqlParameterizer.cs
- MethodBuilder.cs
- RectangleConverter.cs
- XmlCollation.cs
- RepeaterCommandEventArgs.cs
- VectorCollectionConverter.cs
- SmtpNtlmAuthenticationModule.cs
- CompositionDesigner.cs
- designeractionlistschangedeventargs.cs
- AjaxFrameworkAssemblyAttribute.cs
- ListSourceHelper.cs
- BamlBinaryReader.cs
- DataTransferEventArgs.cs
- xmlglyphRunInfo.cs
- CustomAttributeBuilder.cs
- DrawingCollection.cs
- SessionPageStatePersister.cs
- TypeGeneratedEventArgs.cs
- HtmlObjectListAdapter.cs
- FlowLayout.cs
- XmlSchemaInferenceException.cs
- ToolboxItem.cs
- Html32TextWriter.cs
- AuthenticationModulesSection.cs
- Binding.cs
- BindingExpression.cs
- DescendentsWalker.cs
- PermissionListSet.cs
- FormsAuthentication.cs
- PackagingUtilities.cs
- XmlSchemaAll.cs
- HtmlElementCollection.cs
- RadioButtonFlatAdapter.cs
- ComponentGuaranteesAttribute.cs
- WindowsSolidBrush.cs
- DesignerUtility.cs
- TrackingProfileCache.cs
- ProfileEventArgs.cs
- XmlSchemaAnyAttribute.cs
- SingleAnimationBase.cs
- RuntimeConfigurationRecord.cs
- ApplicationProxyInternal.cs
- CopyNamespacesAction.cs
- WebColorConverter.cs
- BlockExpression.cs
- ServiceHostingEnvironment.cs
- WorkflowTransactionOptions.cs
- VirtualizingStackPanel.cs
- WindowsScroll.cs
- TraceListener.cs
- QueryStringConverter.cs
- FormCollection.cs
- ImageSourceConverter.cs
- DataGridViewCellConverter.cs
- ControlTemplate.cs
- WindowsGraphics2.cs
- RuntimeCompatibilityAttribute.cs
- BuildResult.cs
- MetadataFile.cs
- X509Certificate2Collection.cs
- SmtpFailedRecipientException.cs
- ThreadAttributes.cs
- CharAnimationUsingKeyFrames.cs
- TimeSpanValidator.cs
- ServiceNameElement.cs
- AssemblyNameProxy.cs
- SimpleMailWebEventProvider.cs
- XamlGridLengthSerializer.cs
- HMAC.cs
- SmiRecordBuffer.cs
- OrthographicCamera.cs
- BaseTypeViewSchema.cs
- HitTestFilterBehavior.cs
- UnsafeNativeMethods.cs
- PixelShader.cs
- altserialization.cs
- PhysicalAddress.cs
- LineSegment.cs
- WebControl.cs
- ProfilePropertyMetadata.cs
- GenericUriParser.cs
- WebMessageEncodingBindingElement.cs
- SerializerProvider.cs
- WorkflowFormatterBehavior.cs
- TemplateContent.cs
- Validator.cs