Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / SelectionItemProviderWrapper.cs / 1305600 / SelectionItemProviderWrapper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Selection Item 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.Collections;
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 SelectionItemProviderWrapper: MarshalByRefObject, ISelectionItemProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private SelectionItemProviderWrapper( AutomationPeer peer, ISelectionItemProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface ISelectionItemProvider
//
//-----------------------------------------------------
#region Interface ISelectionItemProvider
public void Select()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Select ), null );
}
public void AddToSelection()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( AddToSelection ), null );
}
public void RemoveFromSelection()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( RemoveFromSelection ), null );
}
public bool IsSelected
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsSelected ), null );
}
}
public IRawElementProviderSimple SelectionContainer
{
get
{
return (IRawElementProviderSimple) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetSelectionContainer ), null );
}
}
#endregion Interface ISelectionItemProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new SelectionItemProviderWrapper( peer, (ISelectionItemProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object Select( object unused )
{
_iface.Select();
return null;
}
private object AddToSelection( object unused )
{
_iface.AddToSelection();
return null;
}
private object RemoveFromSelection( object unused )
{
_iface.RemoveFromSelection();
return null;
}
private object GetIsSelected( object unused )
{
return _iface.IsSelected;
}
private object GetSelectionContainer( object unused )
{
return _iface.SelectionContainer;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private ISelectionItemProvider _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: Selection Item 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.Collections;
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 SelectionItemProviderWrapper: MarshalByRefObject, ISelectionItemProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private SelectionItemProviderWrapper( AutomationPeer peer, ISelectionItemProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface ISelectionItemProvider
//
//-----------------------------------------------------
#region Interface ISelectionItemProvider
public void Select()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Select ), null );
}
public void AddToSelection()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( AddToSelection ), null );
}
public void RemoveFromSelection()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( RemoveFromSelection ), null );
}
public bool IsSelected
{
get
{
return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsSelected ), null );
}
}
public IRawElementProviderSimple SelectionContainer
{
get
{
return (IRawElementProviderSimple) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetSelectionContainer ), null );
}
}
#endregion Interface ISelectionItemProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new SelectionItemProviderWrapper( peer, (ISelectionItemProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object Select( object unused )
{
_iface.Select();
return null;
}
private object AddToSelection( object unused )
{
_iface.AddToSelection();
return null;
}
private object RemoveFromSelection( object unused )
{
_iface.RemoveFromSelection();
return null;
}
private object GetIsSelected( object unused )
{
return _iface.IsSelected;
}
private object GetSelectionContainer( object unused )
{
return _iface.SelectionContainer;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private ISelectionItemProvider _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
- Focus.cs
- ProcessManager.cs
- Int64AnimationBase.cs
- PointCollection.cs
- TabletDeviceInfo.cs
- GenericAuthenticationEventArgs.cs
- safelink.cs
- AppDomainManager.cs
- OutputCacheProfileCollection.cs
- LogPolicy.cs
- XmlWrappingReader.cs
- UrlAuthFailedErrorFormatter.cs
- PhysicalFontFamily.cs
- XPathDocumentIterator.cs
- RijndaelManagedTransform.cs
- CalendarDateRange.cs
- _Win32.cs
- SupportingTokenSecurityTokenResolver.cs
- RemoteWebConfigurationHostStream.cs
- Win32SafeHandles.cs
- WinCategoryAttribute.cs
- AttributedMetaModel.cs
- DetailsViewRowCollection.cs
- HostingPreferredMapPath.cs
- ItemContainerGenerator.cs
- MaterialGroup.cs
- MediaTimeline.cs
- ApplicationServiceHelper.cs
- ScrollEventArgs.cs
- MimeTypeAttribute.cs
- CompilationPass2TaskInternal.cs
- BamlRecords.cs
- MetadataItemCollectionFactory.cs
- DirectionalLight.cs
- XmlSchemaImport.cs
- LabelAutomationPeer.cs
- DBCommandBuilder.cs
- HandledMouseEvent.cs
- DecimalConstantAttribute.cs
- TableLayoutRowStyleCollection.cs
- DropSource.cs
- ExpandableObjectConverter.cs
- DataObjectEventArgs.cs
- RelationshipConstraintValidator.cs
- XmlReflectionImporter.cs
- MessageHeaderT.cs
- DeploymentSection.cs
- XmlWriter.cs
- QilReplaceVisitor.cs
- DocumentViewerBase.cs
- TripleDESCryptoServiceProvider.cs
- _ListenerRequestStream.cs
- MembershipValidatePasswordEventArgs.cs
- IndependentlyAnimatedPropertyMetadata.cs
- ShellProvider.cs
- ActiveXHost.cs
- MdiWindowListItemConverter.cs
- DynamicPropertyReader.cs
- DeviceContext2.cs
- WindowsFormsLinkLabel.cs
- StorageFunctionMapping.cs
- WebReference.cs
- HierarchicalDataBoundControlAdapter.cs
- XmlEventCache.cs
- InternalUserCancelledException.cs
- CommandID.cs
- XmlValidatingReader.cs
- InteropTrackingRecord.cs
- ConstructorExpr.cs
- BaseResourcesBuildProvider.cs
- DesignBindingConverter.cs
- KnownBoxes.cs
- PeerNearMe.cs
- Byte.cs
- CapiNative.cs
- PresentationAppDomainManager.cs
- _CommandStream.cs
- Variant.cs
- SafeNativeMethodsOther.cs
- PackagePartCollection.cs
- HtmlDocument.cs
- SrgsGrammar.cs
- TransformGroup.cs
- JsonQNameDataContract.cs
- InstallerTypeAttribute.cs
- keycontainerpermission.cs
- CommandExpr.cs
- UncommonField.cs
- ActiveXContainer.cs
- ConfigXmlCDataSection.cs
- CategoryNameCollection.cs
- RoutingService.cs
- SingleConverter.cs
- WindowsListViewItemStartMenu.cs
- DecodeHelper.cs
- XPathDocumentIterator.cs
- Assembly.cs
- DataGridRelationshipRow.cs
- SrgsText.cs
- WebScriptMetadataFormatter.cs