Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Documents / MoveSizeWinEventHandler.cs / 2 / MoveSizeWinEventHandler.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: MoveSizeWinEventHandler implementation. // // History: // 02/04/2005 : [....] - 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
- CodeNamespaceImportCollection.cs
- TabletDeviceInfo.cs
- SetterBaseCollection.cs
- DependencyStoreSurrogate.cs
- DataGridViewTextBoxCell.cs
- ConfigurationValue.cs
- ChildrenQuery.cs
- RuntimeConfigLKG.cs
- HttpStaticObjectsCollectionWrapper.cs
- PointConverter.cs
- Rule.cs
- CuspData.cs
- ProtocolImporter.cs
- GACIdentityPermission.cs
- SimpleTypeResolver.cs
- InfoCardTrace.cs
- XmlSerializationWriter.cs
- SizeAnimation.cs
- CollectionsUtil.cs
- Image.cs
- RuleSettingsCollection.cs
- StringToken.cs
- TextServicesDisplayAttributePropertyRanges.cs
- Dispatcher.cs
- HMACSHA1.cs
- JavaScriptSerializer.cs
- StreamInfo.cs
- DataGridTextColumn.cs
- XmlName.cs
- MasterPageBuildProvider.cs
- DocComment.cs
- Marshal.cs
- SystemColors.cs
- Closure.cs
- ListViewTableCell.cs
- securitycriticaldataClass.cs
- HtmlImageAdapter.cs
- ThreadStateException.cs
- designeractionlistschangedeventargs.cs
- SiteMapProvider.cs
- ProcessThreadCollection.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- PageRanges.cs
- PathFigure.cs
- ExtensionFile.cs
- TemplateBindingExtensionConverter.cs
- SymLanguageType.cs
- ObjectPersistData.cs
- FileResponseElement.cs
- HandlerWithFactory.cs
- InputLanguageSource.cs
- ReadWriteObjectLock.cs
- MediaSystem.cs
- OverrideMode.cs
- InternalControlCollection.cs
- InvalidPropValue.cs
- WrappingXamlSchemaContext.cs
- RouteParser.cs
- OrthographicCamera.cs
- EntryIndex.cs
- UnmanagedMarshal.cs
- WebPartDesigner.cs
- MetadataCacheItem.cs
- XPathMultyIterator.cs
- OciEnlistContext.cs
- ScriptBehaviorDescriptor.cs
- DataColumnMappingCollection.cs
- MruCache.cs
- DetailsViewUpdateEventArgs.cs
- NetTcpSecurityElement.cs
- SrgsText.cs
- FeatureAttribute.cs
- EncoderBestFitFallback.cs
- DbException.cs
- UpdatePanelTriggerCollection.cs
- RC2CryptoServiceProvider.cs
- TransactionProxy.cs
- SiteMap.cs
- RightNameExpirationInfoPair.cs
- ellipse.cs
- GeneralTransform2DTo3D.cs
- SecurityStandardsManager.cs
- HostedHttpTransportManager.cs
- UInt16Storage.cs
- GradientBrush.cs
- RichTextBox.cs
- NTAccount.cs
- DetailsViewPagerRow.cs
- NCryptSafeHandles.cs
- MetadataCache.cs
- CompressEmulationStream.cs
- FunctionNode.cs
- NamedPipeActivation.cs
- RSAPKCS1SignatureFormatter.cs
- dtdvalidator.cs
- FacetValueContainer.cs
- CollectionViewGroupRoot.cs
- FamilyTypeface.cs
- DisplayNameAttribute.cs
- WebPartDisplayModeCollection.cs