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
- PageBuildProvider.cs
- _ProxyRegBlob.cs
- FlowDocumentView.cs
- DbException.cs
- TreeNodeCollection.cs
- XPathParser.cs
- TablePattern.cs
- VBCodeProvider.cs
- assertwrapper.cs
- NativeMethods.cs
- ZipIOModeEnforcingStream.cs
- XmlUtf8RawTextWriter.cs
- PrintingPermissionAttribute.cs
- Rect3DValueSerializer.cs
- DataBindingCollectionEditor.cs
- DataTableMappingCollection.cs
- RenderData.cs
- Main.cs
- ObjectNavigationPropertyMapping.cs
- NotifyInputEventArgs.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- SmiEventSink_Default.cs
- XmlNodeComparer.cs
- EventEntry.cs
- UrlMappingsModule.cs
- WebPartExportVerb.cs
- TransformPatternIdentifiers.cs
- XPathDocumentNavigator.cs
- Unit.cs
- RichTextBox.cs
- CustomAttribute.cs
- Set.cs
- SplitterDesigner.cs
- CanonicalFontFamilyReference.cs
- WorkItem.cs
- AmbientValueAttribute.cs
- TransformPatternIdentifiers.cs
- ProgressBar.cs
- XmlUtf8RawTextWriter.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- AsyncCallback.cs
- infer.cs
- VirtualDirectoryMapping.cs
- ListViewPagedDataSource.cs
- AssemblyNameProxy.cs
- LineSegment.cs
- Component.cs
- WinEventWrap.cs
- TargetParameterCountException.cs
- CheckBoxList.cs
- ReferentialConstraintRoleElement.cs
- XmlNamespaceMapping.cs
- Lease.cs
- SelectionManager.cs
- UTF7Encoding.cs
- XmlConvert.cs
- ScaleTransform.cs
- SQLConvert.cs
- Constraint.cs
- MultiDataTrigger.cs
- WebConfigurationFileMap.cs
- ProfilePropertySettings.cs
- Hash.cs
- MatrixAnimationUsingPath.cs
- ThreadStaticAttribute.cs
- SvcMapFileSerializer.cs
- SynchronizationLockException.cs
- TrackPointCollection.cs
- XsltFunctions.cs
- XPathNodePointer.cs
- CheckedListBox.cs
- XmlSchemaAnnotated.cs
- StyleXamlTreeBuilder.cs
- DataGridViewRowsRemovedEventArgs.cs
- QilTypeChecker.cs
- SmtpFailedRecipientException.cs
- WebPartDescriptionCollection.cs
- BufferedGraphicsManager.cs
- Control.cs
- DataContext.cs
- XamlWriterExtensions.cs
- DynamicMetaObject.cs
- TextContainer.cs
- OutputBuffer.cs
- Inflater.cs
- StylusTip.cs
- ValidatorUtils.cs
- ItemContainerGenerator.cs
- ConvertEvent.cs
- FigureParagraph.cs
- StrokeNodeEnumerator.cs
- CompositeKey.cs
- InputReportEventArgs.cs
- IsolatedStorageException.cs
- TemplateField.cs
- ConfigurationSectionGroupCollection.cs
- Renderer.cs
- OdbcConnectionHandle.cs
- FontConverter.cs
- DataTableReader.cs