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
- StorageComplexTypeMapping.cs
- PlainXmlSerializer.cs
- BitmapCache.cs
- FontDriver.cs
- TypeConverterBase.cs
- ResourceIDHelper.cs
- CryptoKeySecurity.cs
- RectAnimationBase.cs
- CharacterString.cs
- SoundPlayerAction.cs
- ViewStateException.cs
- CodeDelegateCreateExpression.cs
- DataBoundControl.cs
- TripleDES.cs
- UnicastIPAddressInformationCollection.cs
- DefaultSerializationProviderAttribute.cs
- DataGridColumnDropSeparator.cs
- PipeStream.cs
- ConnectionPoint.cs
- StaticTextPointer.cs
- BmpBitmapEncoder.cs
- HandlerBase.cs
- RangeContentEnumerator.cs
- SBCSCodePageEncoding.cs
- PerformanceCounterManager.cs
- InternalControlCollection.cs
- XmlILTrace.cs
- ListControlBoundActionList.cs
- Lasso.cs
- SessionStateContainer.cs
- EventLogQuery.cs
- TextInfo.cs
- InvalidContentTypeException.cs
- DataPager.cs
- NumberFormatInfo.cs
- Int32CollectionValueSerializer.cs
- XsdValidatingReader.cs
- PeerCredentialElement.cs
- WindowsRebar.cs
- InternalConfigEventArgs.cs
- InlineCategoriesDocument.cs
- PlainXmlDeserializer.cs
- XmlReflectionMember.cs
- TextProperties.cs
- ActivityBuilderXamlWriter.cs
- OdbcParameterCollection.cs
- documentsequencetextpointer.cs
- HtmlInputButton.cs
- CodeMemberEvent.cs
- XmlChoiceIdentifierAttribute.cs
- InlineUIContainer.cs
- Helpers.cs
- DataSourceXmlSerializationAttribute.cs
- ListView.cs
- DbDataAdapter.cs
- MetafileHeaderWmf.cs
- TextFormatterContext.cs
- RouteParametersHelper.cs
- WindowsNonControl.cs
- FileSystemEventArgs.cs
- ToolboxComponentsCreatedEventArgs.cs
- Vector3DAnimationBase.cs
- BooleanToVisibilityConverter.cs
- StateInitializationDesigner.cs
- filewebresponse.cs
- DefaultHttpHandler.cs
- RuntimeConfig.cs
- LocatorGroup.cs
- DataColumnMappingCollection.cs
- DocumentReferenceCollection.cs
- IRCollection.cs
- InputScope.cs
- StandardCommands.cs
- RequestedSignatureDialog.cs
- FixedDSBuilder.cs
- SafeReversePInvokeHandle.cs
- ChannelReliableSession.cs
- DefaultHttpHandler.cs
- UnsafePeerToPeerMethods.cs
- ConfigDefinitionUpdates.cs
- PointF.cs
- XmlCompatibilityReader.cs
- _ShellExpression.cs
- ContextMarshalException.cs
- SmtpClient.cs
- UserNamePasswordClientCredential.cs
- DependencyProperty.cs
- X509Utils.cs
- DecoratedNameAttribute.cs
- CornerRadius.cs
- Label.cs
- HtmlHead.cs
- WindowsStatic.cs
- ProcessThreadCollection.cs
- NavigationProgressEventArgs.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- DummyDataSource.cs
- SqlConnectionStringBuilder.cs
- NotifyIcon.cs
- SecurityKeyUsage.cs