Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / GridItemProviderWrapper.cs / 1305600 / GridItemProviderWrapper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Grid 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.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 GridItemProviderWrapper: MarshalByRefObject, IGridItemProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private GridItemProviderWrapper( AutomationPeer peer, IGridItemProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IGridItemProvider
//
//-----------------------------------------------------
#region Interface IGridItemProvider
public int Row
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetRow ), null );
}
}
public int Column
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetColumn ), null );
}
}
public int RowSpan
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetRowSpan ), null );
}
}
public int ColumnSpan
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetColumnSpan ), null );
}
}
public IRawElementProviderSimple ContainingGrid
{
get
{
return (IRawElementProviderSimple) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetContainingGrid ), null );
}
}
#endregion Interface IGridItemProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new GridItemProviderWrapper( peer, (IGridItemProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object GetRow( object unused )
{
return _iface.Row;
}
private object GetColumn( object unused )
{
return _iface.Column;
}
private object GetRowSpan( object unused )
{
return _iface.RowSpan;
}
private object GetColumnSpan( object unused )
{
return _iface.ColumnSpan;
}
private object GetContainingGrid( object unused )
{
return _iface.ContainingGrid;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IGridItemProvider _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: Grid 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.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 GridItemProviderWrapper: MarshalByRefObject, IGridItemProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private GridItemProviderWrapper( AutomationPeer peer, IGridItemProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IGridItemProvider
//
//-----------------------------------------------------
#region Interface IGridItemProvider
public int Row
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetRow ), null );
}
}
public int Column
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetColumn ), null );
}
}
public int RowSpan
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetRowSpan ), null );
}
}
public int ColumnSpan
{
get
{
return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetColumnSpan ), null );
}
}
public IRawElementProviderSimple ContainingGrid
{
get
{
return (IRawElementProviderSimple) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetContainingGrid ), null );
}
}
#endregion Interface IGridItemProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new GridItemProviderWrapper( peer, (IGridItemProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object GetRow( object unused )
{
return _iface.Row;
}
private object GetColumn( object unused )
{
return _iface.Column;
}
private object GetRowSpan( object unused )
{
return _iface.RowSpan;
}
private object GetColumnSpan( object unused )
{
return _iface.ColumnSpan;
}
private object GetContainingGrid( object unused )
{
return _iface.ContainingGrid;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IGridItemProvider _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
- WebPartEditorApplyVerb.cs
- NamespaceEmitter.cs
- ListBoxItemWrapperAutomationPeer.cs
- CodeDomSerializerException.cs
- CodeVariableDeclarationStatement.cs
- MethodImplAttribute.cs
- DPTypeDescriptorContext.cs
- IxmlLineInfo.cs
- ScrollBar.cs
- RequestCacheValidator.cs
- CacheVirtualItemsEvent.cs
- DataGridViewTopRowAccessibleObject.cs
- QuaternionAnimation.cs
- XmlMtomWriter.cs
- ResolveDuplexCD1AsyncResult.cs
- SparseMemoryStream.cs
- IPipelineRuntime.cs
- ProxyGenerator.cs
- InvalidCastException.cs
- Win32SafeHandles.cs
- ClientConfigPaths.cs
- DoubleAnimationUsingKeyFrames.cs
- ActionMismatchAddressingException.cs
- SkinBuilder.cs
- SkipQueryOptionExpression.cs
- ContainerSelectorGlyph.cs
- StylusCollection.cs
- ProcessHostMapPath.cs
- PersonalizationProvider.cs
- DataSourceXmlClassAttribute.cs
- ObjectSet.cs
- WeakReferenceKey.cs
- HeaderElement.cs
- WorkflowMarkupSerializationException.cs
- ObjectDataSourceSelectingEventArgs.cs
- ArgumentOutOfRangeException.cs
- StrokeNodeEnumerator.cs
- CommunicationException.cs
- PhysicalOps.cs
- FontStretchConverter.cs
- ToolStripDropDownItem.cs
- SelectionWordBreaker.cs
- ReadOnlyCollection.cs
- DynamicValueConverter.cs
- ScanQueryOperator.cs
- ListView.cs
- BitmapEffectDrawingContent.cs
- StringFreezingAttribute.cs
- FileUpload.cs
- StateMachine.cs
- ToolboxControl.cs
- DataGridViewAutoSizeModeEventArgs.cs
- FigureHelper.cs
- BuildResultCache.cs
- ExtensibleClassFactory.cs
- VarRemapper.cs
- DbLambda.cs
- ControlUtil.cs
- ContentOperations.cs
- HttpDictionary.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- SHA1CryptoServiceProvider.cs
- HostingEnvironmentException.cs
- TemplateControlParser.cs
- ThrowHelper.cs
- Timer.cs
- ConfigXmlWhitespace.cs
- RadioButtonAutomationPeer.cs
- BitmapEffectInput.cs
- CompoundFileDeflateTransform.cs
- ImageButton.cs
- Help.cs
- VerifyHashRequest.cs
- OleDbSchemaGuid.cs
- Constraint.cs
- TlsnegoTokenProvider.cs
- SqlDataSourceCommandParser.cs
- XmlSignatureManifest.cs
- CodeGeneratorOptions.cs
- SecurityState.cs
- CompModSwitches.cs
- AdapterSwitches.cs
- HtmlLink.cs
- MsmqReceiveHelper.cs
- StateBag.cs
- TypePresenter.xaml.cs
- DesignerAttributeInfo.cs
- XmlIlTypeHelper.cs
- ResourceDescriptionAttribute.cs
- WebException.cs
- _NegotiateClient.cs
- AttachedPropertyBrowsableAttribute.cs
- ChangeBlockUndoRecord.cs
- OleDbRowUpdatedEvent.cs
- BinaryOperationBinder.cs
- FixedDSBuilder.cs
- RuntimeConfigLKG.cs
- AutoGeneratedFieldProperties.cs
- MimeXmlReflector.cs
- SaveFileDialog.cs