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
- TiffBitmapDecoder.cs
- ThreadTrace.cs
- Merger.cs
- FileDetails.cs
- SqlRowUpdatedEvent.cs
- BasicExpandProvider.cs
- ImportContext.cs
- SystemNetworkInterface.cs
- JsonWriter.cs
- SBCSCodePageEncoding.cs
- DbTypeMap.cs
- Utility.cs
- XmlArrayItemAttribute.cs
- XmlAtomicValue.cs
- ValidatorCompatibilityHelper.cs
- SmtpClient.cs
- MailFileEditor.cs
- KeyPressEvent.cs
- BamlStream.cs
- WorkflowInstanceRecord.cs
- DataTableReader.cs
- xmlformatgeneratorstatics.cs
- AsyncResult.cs
- ServiceDescriptionContext.cs
- DesignerCategoryAttribute.cs
- MediaPlayerState.cs
- WriteableBitmap.cs
- TerminateWorkflow.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- RawStylusInputCustomDataList.cs
- figurelength.cs
- AppDomain.cs
- IntPtr.cs
- WebPartConnectionsCancelVerb.cs
- MsmqBindingElementBase.cs
- TextElement.cs
- HwndPanningFeedback.cs
- FacetChecker.cs
- UmAlQuraCalendar.cs
- ScriptManagerProxy.cs
- TreeNodeCollectionEditorDialog.cs
- PropertyStore.cs
- FormsAuthentication.cs
- TargetControlTypeCache.cs
- TextPointer.cs
- ConfigXmlText.cs
- EditingCommands.cs
- ToolStripDropDownButton.cs
- HitTestParameters.cs
- CustomPopupPlacement.cs
- Point3DAnimationBase.cs
- XmlIlVisitor.cs
- RenderDataDrawingContext.cs
- TrustSection.cs
- FormatSettings.cs
- SqlUdtInfo.cs
- ApplicationSecurityManager.cs
- SqlClientWrapperSmiStreamChars.cs
- RichTextBoxConstants.cs
- TextContainer.cs
- UrlPath.cs
- CompatibleComparer.cs
- TimeEnumHelper.cs
- EntryIndex.cs
- ProtectedConfigurationSection.cs
- MatrixTransform3D.cs
- webproxy.cs
- Rotation3DAnimation.cs
- XmlSchemaNotation.cs
- NativeStructs.cs
- NamedPermissionSet.cs
- CodeObjectCreateExpression.cs
- AllMembershipCondition.cs
- SafeArrayTypeMismatchException.cs
- CachedBitmap.cs
- ToolboxItemLoader.cs
- BuildManagerHost.cs
- DSACryptoServiceProvider.cs
- Screen.cs
- XmlQueryStaticData.cs
- WebPermission.cs
- WpfWebRequestHelper.cs
- AutomationElementCollection.cs
- StatusBarAutomationPeer.cs
- CookieProtection.cs
- DiscoveryClientOutputChannel.cs
- Propagator.JoinPropagator.cs
- TreeIterators.cs
- TableCell.cs
- Unit.cs
- FileIOPermission.cs
- Decoder.cs
- Shape.cs
- XsdDataContractExporter.cs
- Quaternion.cs
- BackgroundFormatInfo.cs
- Tag.cs
- XmlAutoDetectWriter.cs
- Timer.cs