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
- PageOutputColor.cs
- FontNameEditor.cs
- RelationshipConstraintValidator.cs
- HttpWebResponse.cs
- TextParentUndoUnit.cs
- IfAction.cs
- QuaternionValueSerializer.cs
- XmlSchemaValidator.cs
- ActivationServices.cs
- TemplateControlBuildProvider.cs
- TextParagraphCache.cs
- XmlHierarchicalEnumerable.cs
- TCPListener.cs
- WebPartConnectionCollection.cs
- ModulesEntry.cs
- TcpClientCredentialType.cs
- XmlSerializerVersionAttribute.cs
- BaseContextMenu.cs
- sqlstateclientmanager.cs
- PenThread.cs
- QueryOperator.cs
- CheckBoxList.cs
- QilExpression.cs
- PropertyIDSet.cs
- AspNetHostingPermission.cs
- ObjectStateManager.cs
- OracleDataAdapter.cs
- BrowserCapabilitiesFactory.cs
- storepermission.cs
- RecordConverter.cs
- ButtonChrome.cs
- PageCatalogPartDesigner.cs
- HwndStylusInputProvider.cs
- InternalConfigConfigurationFactory.cs
- SessionParameter.cs
- arabicshape.cs
- HealthMonitoringSection.cs
- RijndaelManagedTransform.cs
- TraceSection.cs
- Pens.cs
- NavigationEventArgs.cs
- CheckBox.cs
- TableItemStyle.cs
- InheritanceRules.cs
- ImageButton.cs
- DocumentApplication.cs
- StateWorkerRequest.cs
- Substitution.cs
- ExtenderProvidedPropertyAttribute.cs
- TemplateBamlRecordReader.cs
- DataMemberFieldEditor.cs
- FormattedTextSymbols.cs
- ToolStripItemEventArgs.cs
- WebPartHeaderCloseVerb.cs
- ListDictionary.cs
- ConstructorExpr.cs
- DataGridToolTip.cs
- HWStack.cs
- XhtmlTextWriter.cs
- TextClipboardData.cs
- EntityRecordInfo.cs
- Lock.cs
- StatusBar.cs
- InkCollectionBehavior.cs
- SelectionPattern.cs
- DeflateStreamAsyncResult.cs
- CodeGenerator.cs
- ExtensionWindowHeader.cs
- ClientConfigPaths.cs
- compensatingcollection.cs
- WindowsHyperlink.cs
- SerializationIncompleteException.cs
- MessageDecoder.cs
- ValidationErrorCollection.cs
- PropertyState.cs
- NetworkStream.cs
- GAC.cs
- Propagator.ExtentPlaceholderCreator.cs
- SourceCollection.cs
- ViewStateAttachedPropertyFeature.cs
- ApplicationManager.cs
- Clause.cs
- UnknownBitmapEncoder.cs
- HtmlInputSubmit.cs
- PopupRoot.cs
- CallbackHandler.cs
- RequiredAttributeAttribute.cs
- httpapplicationstate.cs
- ProgressBarHighlightConverter.cs
- TypeConverter.cs
- Base64Decoder.cs
- RichTextBoxConstants.cs
- DecimalConstantAttribute.cs
- LocalizabilityAttribute.cs
- ToolStripContainer.cs
- ConnectionStringsExpressionBuilder.cs
- DomainLiteralReader.cs
- FloatAverageAggregationOperator.cs
- DashStyles.cs
- coordinatorscratchpad.cs