Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / MS / Internal / Automation / WindowProviderWrapper.cs / 1 / WindowProviderWrapper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Window pattern provider wrapper for WCP
//
// History:
// 07/21/2003 : BrendanM Ported to WCP
//
//---------------------------------------------------------------------------
using System;
using System.Windows.Threading;
using System.Windows.Media;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using System.Windows.Automation.Peers;
namespace MS.Internal.Automation
{
// Automation/WCP Wrapper class: Implements that UIAutomation I...Provider
// interface, and calls through to a WCP AutomationPeer which implements the corresponding
// I...Provider inteface. Marshalls the call from the RPC thread onto the
// target AutomationPeer's context.
//
// Class has two major parts to it:
// * Implementation of the I...Provider, which uses Dispatcher.Invoke
// to call a private method (lives in second half of the class) via a delegate,
// if necessary, packages any params into an object param. Return type of Invoke
// must be cast from object to appropriate type.
// * private methods - one for each interface entry point - which get called back
// on the right context. These call through to the peer that's actually
// implenting the I...Provider version of the interface.
internal class WindowProviderWrapper: MarshalByRefObject, IWindowProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private WindowProviderWrapper( AutomationPeer peer, IWindowProvider iface)
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IWindowProvider
//
//-----------------------------------------------------
#region Interface IWindowProvider
public void SetVisualState( WindowVisualState state )
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetVisualState ), state );
}
public void Close()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Close ), null );
}
public bool WaitForInputIdle( int milliseconds )
{
return (bool)ElementUtil.Invoke( _peer, new DispatcherOperationCallback( WaitForInputIdle ), milliseconds );
}
public bool Maximizable
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetMaximizable ), null );
}
}
public bool Minimizable
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetMinimizable ), null );
}
}
public bool IsModal
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsModal ), null );
}
}
public WindowVisualState VisualState
{
get
{
return (WindowVisualState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetVisualState ), null );
}
}
public WindowInteractionState InteractionState
{
get
{
return (WindowInteractionState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetInteractionState ), null );
}
}
public bool IsTopmost
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsTopmost ), null );
}
}
#endregion Interface IWindowProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface)
{
return new WindowProviderWrapper( peer, (IWindowProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object SetVisualState( object arg )
{
_iface.SetVisualState( (WindowVisualState) arg );
return null;
}
private object WaitForInputIdle( object arg )
{
return _iface.WaitForInputIdle( (int) arg );
}
private object Close( object unused )
{
_iface.Close();
return null;
}
private object GetMaximizable( object unused )
{
return _iface.Maximizable;
}
private object GetMinimizable( object unused )
{
return _iface.Minimizable;
}
private object GetIsModal( object unused )
{
return _iface.IsModal;
}
private object GetVisualState( object unused )
{
return _iface.VisualState;
}
private object GetInteractionState( object unused )
{
return _iface.InteractionState;
}
private object GetIsTopmost( object unused )
{
return _iface.IsTopmost;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IWindowProvider _iface;
#endregion Private Fields
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Window pattern provider wrapper for WCP
//
// History:
// 07/21/2003 : BrendanM Ported to WCP
//
//---------------------------------------------------------------------------
using System;
using System.Windows.Threading;
using System.Windows.Media;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using System.Windows.Automation.Peers;
namespace MS.Internal.Automation
{
// Automation/WCP Wrapper class: Implements that UIAutomation I...Provider
// interface, and calls through to a WCP AutomationPeer which implements the corresponding
// I...Provider inteface. Marshalls the call from the RPC thread onto the
// target AutomationPeer's context.
//
// Class has two major parts to it:
// * Implementation of the I...Provider, which uses Dispatcher.Invoke
// to call a private method (lives in second half of the class) via a delegate,
// if necessary, packages any params into an object param. Return type of Invoke
// must be cast from object to appropriate type.
// * private methods - one for each interface entry point - which get called back
// on the right context. These call through to the peer that's actually
// implenting the I...Provider version of the interface.
internal class WindowProviderWrapper: MarshalByRefObject, IWindowProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private WindowProviderWrapper( AutomationPeer peer, IWindowProvider iface)
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IWindowProvider
//
//-----------------------------------------------------
#region Interface IWindowProvider
public void SetVisualState( WindowVisualState state )
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetVisualState ), state );
}
public void Close()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Close ), null );
}
public bool WaitForInputIdle( int milliseconds )
{
return (bool)ElementUtil.Invoke( _peer, new DispatcherOperationCallback( WaitForInputIdle ), milliseconds );
}
public bool Maximizable
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetMaximizable ), null );
}
}
public bool Minimizable
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetMinimizable ), null );
}
}
public bool IsModal
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsModal ), null );
}
}
public WindowVisualState VisualState
{
get
{
return (WindowVisualState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetVisualState ), null );
}
}
public WindowInteractionState InteractionState
{
get
{
return (WindowInteractionState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetInteractionState ), null );
}
}
public bool IsTopmost
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsTopmost ), null );
}
}
#endregion Interface IWindowProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface)
{
return new WindowProviderWrapper( peer, (IWindowProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object SetVisualState( object arg )
{
_iface.SetVisualState( (WindowVisualState) arg );
return null;
}
private object WaitForInputIdle( object arg )
{
return _iface.WaitForInputIdle( (int) arg );
}
private object Close( object unused )
{
_iface.Close();
return null;
}
private object GetMaximizable( object unused )
{
return _iface.Maximizable;
}
private object GetMinimizable( object unused )
{
return _iface.Minimizable;
}
private object GetIsModal( object unused )
{
return _iface.IsModal;
}
private object GetVisualState( object unused )
{
return _iface.VisualState;
}
private object GetInteractionState( object unused )
{
return _iface.InteractionState;
}
private object GetIsTopmost( object unused )
{
return _iface.IsTopmost;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IWindowProvider _iface;
#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
- SignalGate.cs
- InputScope.cs
- TreeSet.cs
- BoundPropertyEntry.cs
- filewebresponse.cs
- SapiRecoContext.cs
- UidPropertyAttribute.cs
- BoundsDrawingContextWalker.cs
- ConfigurationPermission.cs
- WindowsGraphicsWrapper.cs
- TextServicesCompartment.cs
- SafeArrayRankMismatchException.cs
- LowerCaseStringConverter.cs
- XPathItem.cs
- MessageBox.cs
- DataGridAutoFormatDialog.cs
- ValidatedMobileControlConverter.cs
- CreateRefExpr.cs
- odbcmetadatacollectionnames.cs
- AppDomainFactory.cs
- EUCJPEncoding.cs
- MenuCommands.cs
- ToolStripSystemRenderer.cs
- RestHandler.cs
- OraclePermission.cs
- QuaternionConverter.cs
- GeneralTransform3DGroup.cs
- FormViewPageEventArgs.cs
- ChangePassword.cs
- FormatterServices.cs
- InternalSafeNativeMethods.cs
- AnnotationMap.cs
- Operator.cs
- StructuredTypeEmitter.cs
- InstanceKeyCollisionException.cs
- ConnectorDragDropGlyph.cs
- Single.cs
- AttributeProviderAttribute.cs
- NetworkInterface.cs
- RootDesignerSerializerAttribute.cs
- PropertyMapper.cs
- Hyperlink.cs
- TextRunCacheImp.cs
- ComponentResourceKey.cs
- ProjectionPruner.cs
- Profiler.cs
- PropertyPath.cs
- TypeLibConverter.cs
- UrlAuthorizationModule.cs
- GenericPrincipal.cs
- CodeMemberMethod.cs
- FixedSOMImage.cs
- SchemaImporterExtensionElement.cs
- InvalidFilterCriteriaException.cs
- TrackingProfileSerializer.cs
- HttpPostedFile.cs
- RadioButton.cs
- ValidationResult.cs
- WebControlAdapter.cs
- ConnectionInterfaceCollection.cs
- TemplatedMailWebEventProvider.cs
- TemplateComponentConnector.cs
- TablePattern.cs
- TraceData.cs
- BuildResult.cs
- MimeBasePart.cs
- ObjectDataSource.cs
- ProfileManager.cs
- linebase.cs
- OverrideMode.cs
- PinnedBufferMemoryStream.cs
- NativeMethods.cs
- RouteItem.cs
- Predicate.cs
- InputDevice.cs
- BitConverter.cs
- BaseTemplateParser.cs
- SecurityRuntime.cs
- PagerSettings.cs
- XamlDesignerSerializationManager.cs
- TypeTypeConverter.cs
- PopupRoot.cs
- DatasetMethodGenerator.cs
- AutomationIdentifierGuids.cs
- HMACMD5.cs
- OleDragDropHandler.cs
- WCFBuildProvider.cs
- TimeSpanSecondsConverter.cs
- CompensateDesigner.cs
- DependencyObject.cs
- Baml2006Reader.cs
- BitmapCodecInfoInternal.cs
- ECDsaCng.cs
- CollectionContainer.cs
- RuleElement.cs
- WebPartActionVerb.cs
- DataGridCell.cs
- WindowsPen.cs
- BitVector32.cs
- TraceLevelStore.cs