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
- ChildrenQuery.cs
- OutputCacheSection.cs
- Vector3DKeyFrameCollection.cs
- FieldDescriptor.cs
- SupportsEventValidationAttribute.cs
- LocalizationParserHooks.cs
- LocationInfo.cs
- OleDbSchemaGuid.cs
- CommonDialog.cs
- NativeObjectSecurity.cs
- RootProfilePropertySettingsCollection.cs
- ReverseQueryOperator.cs
- XmlNamespaceManager.cs
- CustomErrorsSectionWrapper.cs
- TrackingMemoryStreamFactory.cs
- SettingsPropertyCollection.cs
- HwndProxyElementProvider.cs
- Misc.cs
- SecureStringHasher.cs
- GeneralTransform3DGroup.cs
- ReflectionUtil.cs
- ipaddressinformationcollection.cs
- NativeMethods.cs
- EntityTypeEmitter.cs
- GeneralTransform3DTo2DTo3D.cs
- MarkupProperty.cs
- OperationValidationEventArgs.cs
- WorkflowQueueInfo.cs
- EncoderBestFitFallback.cs
- StyleHelper.cs
- SqlDataReader.cs
- SynchronizedDispatch.cs
- EventListenerClientSide.cs
- TextFormatter.cs
- KeyValueConfigurationElement.cs
- MimeBasePart.cs
- WebServiceReceive.cs
- xdrvalidator.cs
- BitmapCodecInfo.cs
- AnimatedTypeHelpers.cs
- TempEnvironment.cs
- InstallerTypeAttribute.cs
- BlurEffect.cs
- SAPICategories.cs
- System.Data_BID.cs
- OLEDB_Enum.cs
- LinkGrep.cs
- Button.cs
- ToolConsole.cs
- Types.cs
- RelationshipConstraintValidator.cs
- XslCompiledTransform.cs
- DebugInfoExpression.cs
- ColumnWidthChangingEvent.cs
- ReflectionTypeLoadException.cs
- SqlNotificationRequest.cs
- NamespaceMapping.cs
- WsdlImporterElementCollection.cs
- Panel.cs
- IisTraceListener.cs
- XmlBoundElement.cs
- PrintPreviewDialog.cs
- ZipArchive.cs
- WebControl.cs
- SmtpReplyReaderFactory.cs
- ObjectNavigationPropertyMapping.cs
- ProviderBase.cs
- Baml2006ReaderSettings.cs
- SafeArrayTypeMismatchException.cs
- DiagnosticTrace.cs
- FixedFlowMap.cs
- RegistryPermission.cs
- XamlClipboardData.cs
- WorkflowTraceTransfer.cs
- ThumbButtonInfo.cs
- ToolStripTextBox.cs
- ImageFormat.cs
- ComplexLine.cs
- TextServicesLoader.cs
- ProviderSettingsCollection.cs
- TcpAppDomainProtocolHandler.cs
- ScrollItemPatternIdentifiers.cs
- GroupBox.cs
- WebPartChrome.cs
- DataRelation.cs
- ClientSideProviderDescription.cs
- InputLanguageCollection.cs
- ObfuscationAttribute.cs
- ErrorWrapper.cs
- ObjectCloneHelper.cs
- ProcessDesigner.cs
- TrackingRecord.cs
- AssemblyResourceLoader.cs
- ContentPresenter.cs
- SymbolType.cs
- WebControlsSection.cs
- ScaleTransform3D.cs
- XmlQualifiedName.cs
- DeclarationUpdate.cs
- InfiniteIntConverter.cs