Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / SynchronizedInputProviderWrapper.cs / 1305600 / SynchronizedInputProviderWrapper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: SynchronizedInput pattern provider wrapper for WCP
//
// History:
// 11/10/2008 : Added by [....]
//
//---------------------------------------------------------------------------
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 SynchronizedInputProviderWrapper: MarshalByRefObject, ISynchronizedInputProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private SynchronizedInputProviderWrapper( AutomationPeer peer, ISynchronizedInputProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface ISynchronizedInputProvider
//
//-----------------------------------------------------
#region Interface ISynchronizedInputProvider
public void StartListening(SynchronizedInputType inputType)
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( StartListening ), inputType );
}
public void Cancel()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Cancel ), null );
}
#endregion Interface ISynchronizedInputProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new SynchronizedInputProviderWrapper( peer, (ISynchronizedInputProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object StartListening( object arg )
{
_iface.StartListening((SynchronizedInputType)arg);
return null;
}
private object Cancel( object unused )
{
_iface.Cancel();
return null;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private ISynchronizedInputProvider _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
- KeyProperty.cs
- RemoveStoryboard.cs
- UriSectionData.cs
- DataSourceView.cs
- XmlSiteMapProvider.cs
- ForeignKeyConstraint.cs
- TextSpan.cs
- SamlEvidence.cs
- TreeNodeBinding.cs
- IPEndPointCollection.cs
- SolidColorBrush.cs
- BaseValidator.cs
- AssemblyBuilder.cs
- ObjectDataProvider.cs
- DataSpaceManager.cs
- InstancePersistenceException.cs
- SplineKeyFrames.cs
- RowUpdatedEventArgs.cs
- TwoPhaseCommit.cs
- OdbcTransaction.cs
- ObjectDataSourceDisposingEventArgs.cs
- diagnosticsswitches.cs
- ByteStorage.cs
- EventSetter.cs
- WebUtility.cs
- StrongNameMembershipCondition.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ResourceDisplayNameAttribute.cs
- ListCollectionView.cs
- ExpressionsCollectionEditor.cs
- VectorCollectionConverter.cs
- EntityReference.cs
- BoundColumn.cs
- mediaclock.cs
- ReplacementText.cs
- ShaperBuffers.cs
- Vector3DConverter.cs
- LicenseContext.cs
- BlurEffect.cs
- StringFormat.cs
- XPathException.cs
- ToolStripItemTextRenderEventArgs.cs
- HMACSHA512.cs
- CellQuery.cs
- DomainConstraint.cs
- WriteableOnDemandStream.cs
- EntityObject.cs
- XmlDocumentFragment.cs
- UnsafeNativeMethods.cs
- StandardOleMarshalObject.cs
- Columns.cs
- ConstraintEnumerator.cs
- TextAdaptor.cs
- base64Transforms.cs
- WebServiceParameterData.cs
- KeyGestureConverter.cs
- ApplicationContext.cs
- TagPrefixCollection.cs
- DataSourceControl.cs
- HttpInputStream.cs
- UpdatePanelTrigger.cs
- WmlMobileTextWriter.cs
- UndoManager.cs
- SamlConditions.cs
- XmlSchemaException.cs
- SecurityVersion.cs
- DashStyle.cs
- ApplicationSecurityManager.cs
- KeyTimeConverter.cs
- AmbiguousMatchException.cs
- itemelement.cs
- TableCellAutomationPeer.cs
- IdentityHolder.cs
- OdbcConnectionFactory.cs
- Mapping.cs
- Char.cs
- PanelStyle.cs
- DragDeltaEventArgs.cs
- List.cs
- PhysicalAddress.cs
- DependencyObjectPropertyDescriptor.cs
- SupportingTokenBindingElement.cs
- Bookmark.cs
- BamlTreeNode.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- ConfigXmlReader.cs
- HttpConfigurationSystem.cs
- _NestedMultipleAsyncResult.cs
- Int64Converter.cs
- SEHException.cs
- XmlLinkedNode.cs
- DataGridViewColumnEventArgs.cs
- XmlImplementation.cs
- ScriptModule.cs
- COM2ExtendedTypeConverter.cs
- DataGridItemEventArgs.cs
- PrintingPermission.cs
- TextStore.cs
- BinaryReader.cs
- Lease.cs