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
- FieldCollectionEditor.cs
- RemotingSurrogateSelector.cs
- ListSortDescriptionCollection.cs
- CultureInfoConverter.cs
- XmlTextAttribute.cs
- DataColumn.cs
- KeyboardNavigation.cs
- BitmapEffectDrawingContent.cs
- TextTreeExtractElementUndoUnit.cs
- GenericIdentity.cs
- storepermissionattribute.cs
- TraceLog.cs
- MulticastNotSupportedException.cs
- CodeDirectoryCompiler.cs
- RuleSetReference.cs
- HttpRequestCacheValidator.cs
- ReachPrintTicketSerializerAsync.cs
- TextSerializer.cs
- METAHEADER.cs
- _KerberosClient.cs
- CustomTypeDescriptor.cs
- Unit.cs
- XXXInfos.cs
- CodeVariableReferenceExpression.cs
- SignatureHelper.cs
- DetailsViewUpdatedEventArgs.cs
- NumericExpr.cs
- AnnotationAdorner.cs
- SqlEnums.cs
- StrongNameKeyPair.cs
- Material.cs
- ToolZone.cs
- SynchronizationContext.cs
- Point4D.cs
- XmlCodeExporter.cs
- RepeatInfo.cs
- CacheSection.cs
- CssTextWriter.cs
- FrameAutomationPeer.cs
- SurrogateSelector.cs
- DataServiceQueryProvider.cs
- TrackingValidationObjectDictionary.cs
- PropertyManager.cs
- PersonalizationProvider.cs
- TriggerActionCollection.cs
- SqlParameterCollection.cs
- SQLInt16.cs
- HexParser.cs
- DesignBindingPropertyDescriptor.cs
- EntityDataSourceStatementEditorForm.cs
- SqlRetyper.cs
- oledbmetadatacolumnnames.cs
- DefaultTextStore.cs
- TypeDelegator.cs
- JsonCollectionDataContract.cs
- HttpListenerException.cs
- counter.cs
- CqlGenerator.cs
- XhtmlBasicListAdapter.cs
- DesignerCategoryAttribute.cs
- ExpandSegmentCollection.cs
- KeyboardDevice.cs
- ListViewTableCell.cs
- BlurBitmapEffect.cs
- ExecutionContext.cs
- OdbcFactory.cs
- TimelineGroup.cs
- SystemFonts.cs
- RelatedPropertyManager.cs
- DataSet.cs
- SevenBitStream.cs
- ComplexObject.cs
- DataGridView.cs
- SelectionProviderWrapper.cs
- HitTestWithGeometryDrawingContextWalker.cs
- DesignerDataTable.cs
- TypeLoadException.cs
- ContainsRowNumberChecker.cs
- AttributeProviderAttribute.cs
- DataGridViewIntLinkedList.cs
- BinaryFormatterSinks.cs
- InternalControlCollection.cs
- SinglePhaseEnlistment.cs
- SortAction.cs
- xml.cs
- IdentitySection.cs
- RangeValidator.cs
- ProxySimple.cs
- Model3DGroup.cs
- Registry.cs
- ValidatedControlConverter.cs
- ParserContext.cs
- TransformerInfo.cs
- TaskFormBase.cs
- XmlLoader.cs
- XPathPatternParser.cs
- PointCollection.cs
- SoapFormatterSinks.cs
- HuffModule.cs
- Point3D.cs