Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / MS / Internal / Automation / GridItemProviderWrapper.cs / 1 / 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
- DataQuery.cs
- UrlMappingCollection.cs
- DynamicValueConverter.cs
- SQLMembershipProvider.cs
- HttpModulesSection.cs
- LinearKeyFrames.cs
- TextFormatterImp.cs
- SynchronizedDispatch.cs
- SimpleBitVector32.cs
- BindingList.cs
- EdmProperty.cs
- VisualTreeHelper.cs
- HtmlElementCollection.cs
- DataBindingExpressionBuilder.cs
- XmlSchemaSet.cs
- DependentTransaction.cs
- APCustomTypeDescriptor.cs
- PageParser.cs
- GeometryGroup.cs
- Int32CAMarshaler.cs
- CurrentChangingEventArgs.cs
- SmtpReplyReader.cs
- PlatformCulture.cs
- WinEventHandler.cs
- UTF8Encoding.cs
- ArgumentNullException.cs
- EntityClassGenerator.cs
- HttpModulesSection.cs
- XamlHostingConfiguration.cs
- TouchEventArgs.cs
- DataGridColumnFloatingHeader.cs
- SupportingTokenBindingElement.cs
- _ChunkParse.cs
- Geometry3D.cs
- RegexMatch.cs
- LinearKeyFrames.cs
- ModifierKeysValueSerializer.cs
- newinstructionaction.cs
- Partitioner.cs
- MailWriter.cs
- TemplateBindingExpressionConverter.cs
- FieldDescriptor.cs
- PingOptions.cs
- DeferredReference.cs
- HttpRuntimeSection.cs
- PathGradientBrush.cs
- DataSet.cs
- XamlBuildProvider.cs
- WindowsProgressbar.cs
- IdentityNotMappedException.cs
- HtmlHistory.cs
- NavigationEventArgs.cs
- PreservationFileReader.cs
- ComplexTypeEmitter.cs
- HttpApplicationFactory.cs
- DataView.cs
- DataPagerField.cs
- Helper.cs
- OdbcPermission.cs
- EditorBrowsableAttribute.cs
- HierarchicalDataTemplate.cs
- ProgressPage.cs
- AssemblyName.cs
- StylusPlugInCollection.cs
- SQLBytesStorage.cs
- ACL.cs
- NegotiateStream.cs
- Delegate.cs
- ImageProxy.cs
- Delegate.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- ColorConvertedBitmap.cs
- AnnotationHelper.cs
- SafeEventHandle.cs
- PasswordDeriveBytes.cs
- ClientReliableChannelBinder.cs
- PageThemeParser.cs
- GlobalItem.cs
- updatecommandorderer.cs
- SettingsPropertyValue.cs
- XmlComplianceUtil.cs
- UnitySerializationHolder.cs
- FontFamily.cs
- TemplateParser.cs
- Registry.cs
- TypeUsage.cs
- NetworkStream.cs
- returneventsaver.cs
- DSASignatureFormatter.cs
- PageCatalogPart.cs
- OdbcConnection.cs
- RegexWriter.cs
- PseudoWebRequest.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- DiscoveryVersion.cs
- SqlExpander.cs
- WindowsFormsDesignerOptionService.cs
- Error.cs
- EntityObject.cs
- ErrorProvider.cs