Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DbException.cs
- ThrowHelper.cs
- SoapReflectionImporter.cs
- EventDescriptor.cs
- ProfileService.cs
- ExternalFile.cs
- _Connection.cs
- InfoCardClaim.cs
- RepeaterCommandEventArgs.cs
- __ConsoleStream.cs
- InvokePatternIdentifiers.cs
- SrgsDocument.cs
- Light.cs
- AndCondition.cs
- DefaultPropertyAttribute.cs
- RawKeyboardInputReport.cs
- GetPageCompletedEventArgs.cs
- BasicExpressionVisitor.cs
- HighlightVisual.cs
- PartialArray.cs
- RegexBoyerMoore.cs
- GeneratedContractType.cs
- TextComposition.cs
- EntitySqlQueryCacheEntry.cs
- DesignerFrame.cs
- WebBrowserDesigner.cs
- DataGridViewCellEventArgs.cs
- ProfileService.cs
- RtfControls.cs
- Path.cs
- PenThreadPool.cs
- XmlDocumentFieldSchema.cs
- CounterSampleCalculator.cs
- DataGridViewCellLinkedList.cs
- BoundsDrawingContextWalker.cs
- ConnectionsZone.cs
- Lease.cs
- RotateTransform3D.cs
- NameNode.cs
- TemplateColumn.cs
- CharUnicodeInfo.cs
- XmlBinaryWriterSession.cs
- SecurityContextCookieSerializer.cs
- AsyncCodeActivityContext.cs
- FontConverter.cs
- DoubleKeyFrameCollection.cs
- InvalidDataContractException.cs
- DataGridViewLinkColumn.cs
- ContentPathSegment.cs
- SequenceDesigner.xaml.cs
- PassportAuthentication.cs
- ErrorStyle.cs
- Button.cs
- EmptyReadOnlyDictionaryInternal.cs
- NeedSkipTokenVisitor.cs
- _LocalDataStore.cs
- ProcessInputEventArgs.cs
- PathSegment.cs
- GeometryConverter.cs
- SizeAnimationClockResource.cs
- ColorBlend.cs
- NameValueConfigurationElement.cs
- CqlGenerator.cs
- CrossAppDomainChannel.cs
- DragCompletedEventArgs.cs
- GuidTagList.cs
- ErrorReporting.cs
- ImageUrlEditor.cs
- SqlUtil.cs
- ConfigurationManagerInternal.cs
- DbConnectionPoolOptions.cs
- XPathDocumentIterator.cs
- _NtlmClient.cs
- CreateUserErrorEventArgs.cs
- _HeaderInfoTable.cs
- ValidationError.cs
- BitmapEffectInput.cs
- TypeInitializationException.cs
- CompModSwitches.cs
- SHA512Managed.cs
- DummyDataSource.cs
- UnsafeNativeMethodsPenimc.cs
- ApplicationId.cs
- WebPartCollection.cs
- RSAPKCS1KeyExchangeFormatter.cs
- HtmlGenericControl.cs
- Geometry.cs
- Matrix3DStack.cs
- RemoteWebConfigurationHostServer.cs
- SimpleHandlerFactory.cs
- PagerSettings.cs
- DocumentAutomationPeer.cs
- CodeObjectCreateExpression.cs
- PathFigure.cs
- SoapSchemaExporter.cs
- TimelineGroup.cs
- FSWPathEditor.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- _TLSstream.cs
- ColorIndependentAnimationStorage.cs