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
- Vector3DConverter.cs
- SafeFileMappingHandle.cs
- ElementMarkupObject.cs
- Socket.cs
- LocalServiceSecuritySettings.cs
- ResourceReferenceExpressionConverter.cs
- Vector3DKeyFrameCollection.cs
- TextModifierScope.cs
- VisualBrush.cs
- DataServiceBehavior.cs
- LayoutSettings.cs
- Style.cs
- SoapProtocolImporter.cs
- XmlUtil.cs
- CustomLineCap.cs
- OleDbParameter.cs
- FontUnitConverter.cs
- EnumUnknown.cs
- ProcessModuleCollection.cs
- TextProperties.cs
- __ComObject.cs
- MdImport.cs
- QilTernary.cs
- AuthenticationModulesSection.cs
- MenuItemStyleCollection.cs
- ResumeStoryboard.cs
- SqlUtils.cs
- PixelFormats.cs
- DelegatingHeader.cs
- RichTextBoxDesigner.cs
- ListBindableAttribute.cs
- XmlMapping.cs
- MarshalByRefObject.cs
- DrawListViewColumnHeaderEventArgs.cs
- RawStylusSystemGestureInputReport.cs
- DuplexClientBase.cs
- TextTreeTextNode.cs
- PaperSource.cs
- EntityDataSourceDesignerHelper.cs
- PenContexts.cs
- LocalizedNameDescriptionPair.cs
- XmlParserContext.cs
- SortKey.cs
- DataTemplateKey.cs
- ScriptingSectionGroup.cs
- DataBoundControl.cs
- DataColumnCollection.cs
- HiddenField.cs
- ADMembershipUser.cs
- GridViewRow.cs
- TraceContextRecord.cs
- BindableAttribute.cs
- WSFederationHttpSecurity.cs
- CodeAttachEventStatement.cs
- XPathDocumentIterator.cs
- BasicCommandTreeVisitor.cs
- TdsEnums.cs
- NativeMethods.cs
- CompoundFileDeflateTransform.cs
- MasterPageParser.cs
- Package.cs
- ProcessHostConfigUtils.cs
- TransformationRules.cs
- BindToObject.cs
- BridgeDataReader.cs
- DataServiceConfiguration.cs
- WebPartsPersonalizationAuthorization.cs
- DrawingVisualDrawingContext.cs
- DrawingContextDrawingContextWalker.cs
- XmlSerializableReader.cs
- TypeResolvingOptionsAttribute.cs
- PreProcessInputEventArgs.cs
- COM2Enum.cs
- ResponseStream.cs
- ADConnectionHelper.cs
- CheckableControlBaseAdapter.cs
- CompleteWizardStep.cs
- MDIControlStrip.cs
- TimeSpanOrInfiniteConverter.cs
- MenuStrip.cs
- Timeline.cs
- CodeDelegateCreateExpression.cs
- TcpHostedTransportConfiguration.cs
- Activity.cs
- ObjectViewListener.cs
- ControlUtil.cs
- ResourceDescriptionAttribute.cs
- TextBoxView.cs
- Int32RectConverter.cs
- XmlSerializationWriter.cs
- ArithmeticException.cs
- TextFindEngine.cs
- Nullable.cs
- XamlPathDataSerializer.cs
- UpdateRecord.cs
- updateconfighost.cs
- ExtensionWindowHeader.cs
- Restrictions.cs
- BackoffTimeoutHelper.cs
- XPathParser.cs