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
- FileDialogCustomPlace.cs
- PixelFormat.cs
- WmpBitmapEncoder.cs
- Label.cs
- PasswordRecovery.cs
- Int32RectConverter.cs
- TreeNodeBindingCollection.cs
- ThemeDirectoryCompiler.cs
- FontFaceLayoutInfo.cs
- ClonableStack.cs
- RuntimeIdentifierPropertyAttribute.cs
- TableRow.cs
- WhitespaceReader.cs
- DesignerSerializerAttribute.cs
- ToolStripGrip.cs
- SecurityContextKeyIdentifierClause.cs
- SimpleLine.cs
- ListViewUpdatedEventArgs.cs
- JournalEntry.cs
- StreamInfo.cs
- FlowDocumentScrollViewer.cs
- ClosableStream.cs
- FilePrompt.cs
- NotifyInputEventArgs.cs
- HelpKeywordAttribute.cs
- GenericWebPart.cs
- SimpleTypeResolver.cs
- ToolStripPanel.cs
- StorageModelBuildProvider.cs
- Helper.cs
- ImportedNamespaceContextItem.cs
- FileDialogCustomPlacesCollection.cs
- MailHeaderInfo.cs
- WindowAutomationPeer.cs
- HopperCache.cs
- MutexSecurity.cs
- DataPager.cs
- MimeWriter.cs
- ProgressBarBrushConverter.cs
- TiffBitmapEncoder.cs
- Int16Animation.cs
- SqlRewriteScalarSubqueries.cs
- PackageRelationshipSelector.cs
- RelationshipEndCollection.cs
- ApplicationSecurityInfo.cs
- TableCellAutomationPeer.cs
- DBSqlParserColumn.cs
- BamlTreeMap.cs
- PriorityQueue.cs
- LinkLabelLinkClickedEvent.cs
- ContextStaticAttribute.cs
- Size3D.cs
- ImageClickEventArgs.cs
- Label.cs
- TempFiles.cs
- BridgeDataRecord.cs
- CriticalExceptions.cs
- ExpressionEvaluator.cs
- ToolTipAutomationPeer.cs
- ErrorProvider.cs
- GenerateScriptTypeAttribute.cs
- GenericPrincipal.cs
- EventHandlersDesigner.cs
- KeyFrames.cs
- SourceFilter.cs
- IconHelper.cs
- CustomLineCap.cs
- figurelengthconverter.cs
- ErrorActivity.cs
- LogEntryHeaderv1Deserializer.cs
- SqlTypeSystemProvider.cs
- UnsupportedPolicyOptionsException.cs
- iisPickupDirectory.cs
- InputReportEventArgs.cs
- DataSourceCacheDurationConverter.cs
- XsdValidatingReader.cs
- TracedNativeMethods.cs
- SessionParameter.cs
- OleDbSchemaGuid.cs
- DataServiceExpressionVisitor.cs
- EmissiveMaterial.cs
- UnaryNode.cs
- ComAdminInterfaces.cs
- IPHostEntry.cs
- Transaction.cs
- FixedSOMTableCell.cs
- SqlProviderServices.cs
- DbConnectionHelper.cs
- DesignerWebPartChrome.cs
- FormViewUpdateEventArgs.cs
- FieldNameLookup.cs
- Literal.cs
- XmlDictionaryReader.cs
- VisualStyleElement.cs
- PrinterResolution.cs
- DocumentOrderQuery.cs
- Command.cs
- XmlElement.cs
- QueryResponse.cs
- StylusButtonCollection.cs