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
- BufferedStream.cs
- LayeredChannelFactory.cs
- ZipIOLocalFileBlock.cs
- CustomAttribute.cs
- Point3D.cs
- VScrollBar.cs
- Transform3DCollection.cs
- LicFileLicenseProvider.cs
- DiscoveryClientBindingElement.cs
- StorageEntitySetMapping.cs
- DesignerTextBoxAdapter.cs
- ListControl.cs
- CodeIterationStatement.cs
- SystemFonts.cs
- BitmapEffectInputData.cs
- sqlnorm.cs
- WizardForm.cs
- DataContractSet.cs
- RelationshipFixer.cs
- Sorting.cs
- WindowsListView.cs
- ServiceChannelProxy.cs
- QuaternionRotation3D.cs
- Column.cs
- IPEndPointCollection.cs
- StatusBarItemAutomationPeer.cs
- DynamicQueryableWrapper.cs
- CipherData.cs
- OrderedDictionaryStateHelper.cs
- ComponentRenameEvent.cs
- WebReferenceCollection.cs
- SessionEndingEventArgs.cs
- CompoundFileReference.cs
- UidManager.cs
- StandardToolWindows.cs
- SecurityException.cs
- SmtpNtlmAuthenticationModule.cs
- ColumnTypeConverter.cs
- DataServiceQueryOfT.cs
- MessageEnumerator.cs
- GeneratedCodeAttribute.cs
- DrawingGroupDrawingContext.cs
- MDIControlStrip.cs
- TableLayout.cs
- DbMetaDataCollectionNames.cs
- TextEffect.cs
- _NetworkingPerfCounters.cs
- ImageCodecInfo.cs
- XmlNamespaceManager.cs
- WebPartMenu.cs
- Int64Storage.cs
- QueryStringParameter.cs
- FormsAuthenticationTicket.cs
- AsnEncodedData.cs
- UserPreferenceChangingEventArgs.cs
- ScrollBar.cs
- FamilyTypeface.cs
- PrintPageEvent.cs
- DurableDispatcherAddressingFault.cs
- LogSwitch.cs
- NativeCompoundFileAPIs.cs
- SubMenuStyleCollectionEditor.cs
- DataGridColumnFloatingHeader.cs
- CngProvider.cs
- XmlValidatingReader.cs
- Attachment.cs
- CreateDataSourceDialog.cs
- OuterGlowBitmapEffect.cs
- Table.cs
- COM2ColorConverter.cs
- BmpBitmapDecoder.cs
- ArrayHelper.cs
- PersonalizationStateInfoCollection.cs
- UdpUtility.cs
- XmlValidatingReader.cs
- StaticResourceExtension.cs
- DbProviderConfigurationHandler.cs
- AppDomainUnloadedException.cs
- SimpleHandlerFactory.cs
- NameScope.cs
- TreeViewImageIndexConverter.cs
- XmlILOptimizerVisitor.cs
- FilterQuery.cs
- DataError.cs
- CssStyleCollection.cs
- SqlWriter.cs
- DBBindings.cs
- RowToParametersTransformer.cs
- ThicknessAnimation.cs
- StrongNameMembershipCondition.cs
- XamlSerializerUtil.cs
- DataGridViewComboBoxEditingControl.cs
- WindowsEditBox.cs
- ContextDataSource.cs
- DbConnectionStringCommon.cs
- BooleanAnimationBase.cs
- LateBoundBitmapDecoder.cs
- BinHexEncoding.cs
- MailDefinition.cs
- LoginUtil.cs