Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / MoveSizeWinEventHandler.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AlignmentYValidation.cs
- AttributeEmitter.cs
- SiteMembershipCondition.cs
- PageAsyncTaskManager.cs
- RowUpdatingEventArgs.cs
- X509Certificate.cs
- NativeMethods.cs
- StatementContext.cs
- New.cs
- NamespaceMapping.cs
- FolderBrowserDialog.cs
- QilList.cs
- HttpVersion.cs
- OrderByBuilder.cs
- SevenBitStream.cs
- ColumnPropertiesGroup.cs
- IsolatedStorageFileStream.cs
- FocusTracker.cs
- WebPartDeleteVerb.cs
- AnnouncementEventArgs.cs
- backend.cs
- Filter.cs
- ElementMarkupObject.cs
- DEREncoding.cs
- Point3DCollectionValueSerializer.cs
- SqlMultiplexer.cs
- Int32AnimationBase.cs
- SqlServer2KCompatibilityAnnotation.cs
- FormClosingEvent.cs
- XmlObjectSerializerReadContextComplex.cs
- DataGridToolTip.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- TcpConnectionPoolSettings.cs
- SqlServer2KCompatibilityCheck.cs
- IItemProperties.cs
- AsyncParams.cs
- WindowsPrincipal.cs
- ContextMenu.cs
- ToolStripSplitStackLayout.cs
- SingleConverter.cs
- BinaryMethodMessage.cs
- DirtyTextRange.cs
- Missing.cs
- InfiniteIntConverter.cs
- Visual3D.cs
- HostingEnvironment.cs
- AutomationPatternInfo.cs
- NavigateUrlConverter.cs
- ErrorFormatterPage.cs
- WebPart.cs
- SecurityException.cs
- CryptoApi.cs
- QilStrConcat.cs
- WorkflowTraceTransfer.cs
- RecognizedAudio.cs
- IRCollection.cs
- Converter.cs
- DispatchChannelSink.cs
- HostVisual.cs
- BaseHashHelper.cs
- TextEditorCopyPaste.cs
- GridViewSelectEventArgs.cs
- WindowsFont.cs
- DependencyProperty.cs
- mediaeventargs.cs
- StorageModelBuildProvider.cs
- PerformanceCounterPermissionAttribute.cs
- TableRowGroup.cs
- WebBrowsableAttribute.cs
- XhtmlBasicTextViewAdapter.cs
- AudienceUriMode.cs
- QilGenerator.cs
- ThrowHelper.cs
- Timeline.cs
- ZipFileInfoCollection.cs
- XmlSerializerAssemblyAttribute.cs
- Thickness.cs
- CompressionTracing.cs
- ReferentialConstraint.cs
- x509store.cs
- BookmarkTable.cs
- ISAPIWorkerRequest.cs
- StylusPointCollection.cs
- PrintPreviewControl.cs
- XmlTypeMapping.cs
- Enum.cs
- DiagnosticTraceSource.cs
- GenericNameHandler.cs
- FormViewAutoFormat.cs
- OleDbConnectionInternal.cs
- PrtCap_Reader.cs
- RuntimeWrappedException.cs
- GenerateScriptTypeAttribute.cs
- StorageEntitySetMapping.cs
- OleDbConnectionInternal.cs
- X509CertificateCollection.cs
- CapiSafeHandles.cs
- DataRecordInternal.cs
- DataGridColumn.cs
- SlotInfo.cs