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
- SdlChannelSink.cs
- PersonalizableTypeEntry.cs
- PanelStyle.cs
- VersionPair.cs
- UiaCoreApi.cs
- DependencyPropertyValueSerializer.cs
- OleDbStruct.cs
- DataRowView.cs
- CustomCategoryAttribute.cs
- MemberCollection.cs
- HostedNamedPipeTransportManager.cs
- TrackingStringDictionary.cs
- XmlSchemaObjectTable.cs
- XmlSchemaAttributeGroup.cs
- HeaderUtility.cs
- PackageProperties.cs
- ViewBox.cs
- HtmlShim.cs
- ContractCodeDomInfo.cs
- PageHandlerFactory.cs
- AssemblyAssociatedContentFileAttribute.cs
- AsymmetricSecurityProtocol.cs
- basevalidator.cs
- ReferentialConstraintRoleElement.cs
- ClientUrlResolverWrapper.cs
- EncodingTable.cs
- BaseTemplateParser.cs
- FormatConvertedBitmap.cs
- FormsIdentity.cs
- EntityDataSourceValidationException.cs
- WorkflowMessageEventArgs.cs
- ControlCachePolicy.cs
- X509CertificateStore.cs
- ObjectDataSourceMethodEventArgs.cs
- ValueChangedEventManager.cs
- QueryableDataSourceView.cs
- CodeRemoveEventStatement.cs
- SocketAddress.cs
- FormViewModeEventArgs.cs
- NetPipeSectionData.cs
- TextStore.cs
- SystemSounds.cs
- ConfigurationSectionGroup.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- ReadOnlyObservableCollection.cs
- IQueryable.cs
- IgnoreSectionHandler.cs
- PathFigureCollectionValueSerializer.cs
- TypeTypeConverter.cs
- ComboBox.cs
- FileDialog_Vista_Interop.cs
- IPAddressCollection.cs
- GroupBox.cs
- InternalSafeNativeMethods.cs
- DesignerSerializerAttribute.cs
- LocalIdKeyIdentifierClause.cs
- TreeNodeClickEventArgs.cs
- ExpandableObjectConverter.cs
- TrustManager.cs
- ComponentEvent.cs
- CompilerGeneratedAttribute.cs
- SpStreamWrapper.cs
- SqlConnectionFactory.cs
- DocumentPageTextView.cs
- NonVisualControlAttribute.cs
- SettingsPropertyValueCollection.cs
- AdapterUtil.cs
- StoreContentChangedEventArgs.cs
- SQLDecimalStorage.cs
- QueryableFilterUserControl.cs
- IfJoinedCondition.cs
- XpsColorContext.cs
- EntityDataReader.cs
- Preprocessor.cs
- SelectionWordBreaker.cs
- ButtonFieldBase.cs
- ProxyHelper.cs
- TableLayoutSettings.cs
- TemplateEditingVerb.cs
- ConfigurationManagerHelperFactory.cs
- StorageEntityTypeMapping.cs
- ListViewPagedDataSource.cs
- AssemblyAttributes.cs
- ExpressionVisitor.cs
- CompensationExtension.cs
- LinkDescriptor.cs
- WindowsAuthenticationEventArgs.cs
- EmptyEnumerable.cs
- GridView.cs
- RecognizedAudio.cs
- PeerDuplexChannel.cs
- FixedSOMSemanticBox.cs
- _ServiceNameStore.cs
- RNGCryptoServiceProvider.cs
- ContainerParaClient.cs
- ReflectionPermission.cs
- CompositeControl.cs
- DesignTimeXamlWriter.cs
- ScriptHandlerFactory.cs
- MsmqIntegrationProcessProtocolHandler.cs