Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / MultipleViewProviderWrapper.cs / 1305600 / MultipleViewProviderWrapper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Multiple View 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 MultipleViewProviderWrapper: MarshalByRefObject, IMultipleViewProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private MultipleViewProviderWrapper( AutomationPeer peer, IMultipleViewProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IMultipleViewProvider
//
//-----------------------------------------------------
#region Interface IMultipleViewProvider
public string GetViewName( int viewID )
{
return (string) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetViewName ), viewID );
}
public void SetCurrentView( int viewID )
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetCurrentView ), viewID );
}
public int CurrentView
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetCurrentView ), null );
}
}
public int [] GetSupportedViews()
{
return (int []) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetSupportedViews ), null );
}
#endregion Interface IMultipleViewProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new MultipleViewProviderWrapper( peer, (IMultipleViewProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object GetViewName( object arg )
{
return _iface.GetViewName( (int) arg );
}
private object SetCurrentView( object arg )
{
_iface.SetCurrentView( (int) arg );
return null;
}
private object GetCurrentView( object unused )
{
return _iface.CurrentView;
}
private object GetSupportedViews( object unused )
{
return _iface.GetSupportedViews();
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IMultipleViewProvider _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: Multiple View 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 MultipleViewProviderWrapper: MarshalByRefObject, IMultipleViewProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private MultipleViewProviderWrapper( AutomationPeer peer, IMultipleViewProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IMultipleViewProvider
//
//-----------------------------------------------------
#region Interface IMultipleViewProvider
public string GetViewName( int viewID )
{
return (string) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetViewName ), viewID );
}
public void SetCurrentView( int viewID )
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetCurrentView ), viewID );
}
public int CurrentView
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetCurrentView ), null );
}
}
public int [] GetSupportedViews()
{
return (int []) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetSupportedViews ), null );
}
#endregion Interface IMultipleViewProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new MultipleViewProviderWrapper( peer, (IMultipleViewProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object GetViewName( object arg )
{
return _iface.GetViewName( (int) arg );
}
private object SetCurrentView( object arg )
{
_iface.SetCurrentView( (int) arg );
return null;
}
private object GetCurrentView( object unused )
{
return _iface.CurrentView;
}
private object GetSupportedViews( object unused )
{
return _iface.GetSupportedViews();
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IMultipleViewProvider _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
- RemotingServices.cs
- ComAdminInterfaces.cs
- TableLayoutRowStyleCollection.cs
- TextRangeEditLists.cs
- tibetanshape.cs
- StorageModelBuildProvider.cs
- HttpCapabilitiesEvaluator.cs
- BorderGapMaskConverter.cs
- BinaryCommonClasses.cs
- LoadWorkflowCommand.cs
- CompilerCollection.cs
- OutputCacheProfile.cs
- MetafileHeaderEmf.cs
- CallbackValidator.cs
- RegistrySecurity.cs
- Cell.cs
- CompleteWizardStep.cs
- IDispatchConstantAttribute.cs
- DataPointer.cs
- MemoryRecordBuffer.cs
- UIInitializationException.cs
- ObjectSecurityT.cs
- JournalEntryStack.cs
- QueryCoreOp.cs
- DataPager.cs
- NameObjectCollectionBase.cs
- ListViewItem.cs
- WorkflowInvoker.cs
- XmlValidatingReaderImpl.cs
- SQLBinaryStorage.cs
- QilTypeChecker.cs
- FixedPosition.cs
- SecurityUtils.cs
- UnknownWrapper.cs
- CodeStatement.cs
- OletxDependentTransaction.cs
- CollectionTraceRecord.cs
- VisualStateChangedEventArgs.cs
- MultiTargetingUtil.cs
- TextServicesHost.cs
- MatrixCamera.cs
- ComponentCollection.cs
- HttpHostedTransportConfiguration.cs
- MdImport.cs
- GeneralTransformGroup.cs
- OdbcConnectionString.cs
- HtmlInputText.cs
- Queue.cs
- MetadataItemCollectionFactory.cs
- ThreadStartException.cs
- BuildResult.cs
- FileLoadException.cs
- HwndSource.cs
- EventBuilder.cs
- XmlSchemaChoice.cs
- WebResourceAttribute.cs
- LostFocusEventManager.cs
- ReflectEventDescriptor.cs
- PointAnimationUsingKeyFrames.cs
- TimeZoneInfo.cs
- CheckBoxField.cs
- CustomAttributeFormatException.cs
- CompiledQuery.cs
- AppearanceEditorPart.cs
- SolidBrush.cs
- XmlSchema.cs
- DataSysAttribute.cs
- PictureBox.cs
- CollectionViewSource.cs
- Relationship.cs
- ImportContext.cs
- StringDictionaryWithComparer.cs
- AssemblyName.cs
- AsyncResult.cs
- CodeEventReferenceExpression.cs
- FileUpload.cs
- SystemFonts.cs
- SiteMapHierarchicalDataSourceView.cs
- DataTemplateKey.cs
- ErrorHandler.cs
- LinearGradientBrush.cs
- TextElementCollection.cs
- Base64WriteStateInfo.cs
- OrderingExpression.cs
- TypeUsageBuilder.cs
- GridView.cs
- AnimationStorage.cs
- TextRunCache.cs
- RepeaterCommandEventArgs.cs
- AttributeCollection.cs
- PageAsyncTask.cs
- CodeDomConfigurationHandler.cs
- FileStream.cs
- BCryptSafeHandles.cs
- SamlAudienceRestrictionCondition.cs
- keycontainerpermission.cs
- EntitySetDataBindingList.cs
- DataContext.cs
- OleDbPropertySetGuid.cs
- EdmItemCollection.cs