Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / TableItemProviderWrapper.cs / 1305600 / TableItemProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Table 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 TableItemProviderWrapper: MarshalByRefObject, ITableItemProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private TableItemProviderWrapper( AutomationPeer peer, ITableItemProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface ITableItemProvider // //----------------------------------------------------- #region Interface ITableItemProvider 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 ); } } public IRawElementProviderSimple [] GetRowHeaderItems() { return (IRawElementProviderSimple []) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetRowHeaderItems ), null ); } public IRawElementProviderSimple [] GetColumnHeaderItems() { return (IRawElementProviderSimple []) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetColumnHeaderItems ), null ); } #endregion Interface ITableItemProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new TableItemProviderWrapper( peer, (ITableItemProvider) 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; } private object GetRowHeaderItems( object unused ) { return _iface.GetRowHeaderItems(); } private object GetColumnHeaderItems( object unused ) { return _iface.GetColumnHeaderItems(); } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private ITableItemProvider _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
- SqlCacheDependencyDatabaseCollection.cs
- CodeTypeParameterCollection.cs
- IPEndPointCollection.cs
- SettingsAttributes.cs
- BaseCAMarshaler.cs
- URLMembershipCondition.cs
- IdentityHolder.cs
- EmissiveMaterial.cs
- InvalidCastException.cs
- EntityContainerEntitySetDefiningQuery.cs
- HtmlPageAdapter.cs
- WindowsGraphicsCacheManager.cs
- _Semaphore.cs
- XmlAnyElementAttribute.cs
- SamlAudienceRestrictionCondition.cs
- ICspAsymmetricAlgorithm.cs
- DataGridViewCellLinkedList.cs
- DelegateArgument.cs
- WindowsPen.cs
- SafeNativeMethods.cs
- EntityTypeEmitter.cs
- UnSafeCharBuffer.cs
- FlowDocumentPage.cs
- UpdateProgress.cs
- Choices.cs
- GPPOINTF.cs
- Convert.cs
- ExpandCollapsePattern.cs
- ReplacementText.cs
- HostedTcpTransportManager.cs
- StateWorkerRequest.cs
- DatagridviewDisplayedBandsData.cs
- SqlCacheDependency.cs
- TypeUsage.cs
- DataControlButton.cs
- HandledEventArgs.cs
- MailHeaderInfo.cs
- DCSafeHandle.cs
- TableRow.cs
- OperationResponse.cs
- TemplatedWizardStep.cs
- BamlResourceDeserializer.cs
- AddInServer.cs
- SmiEventSink.cs
- HexParser.cs
- bindurihelper.cs
- WebBrowserHelper.cs
- AutomationEventArgs.cs
- ClassImporter.cs
- ColumnCollection.cs
- PropertySegmentSerializer.cs
- MSAAEventDispatcher.cs
- XmlSchemaType.cs
- NativeMethods.cs
- HuffCodec.cs
- XmlUtil.cs
- GlobalEventManager.cs
- TraceEventCache.cs
- TableChangeProcessor.cs
- ReaderWriterLock.cs
- FormViewModeEventArgs.cs
- PolicyUnit.cs
- ReadOnlyHierarchicalDataSource.cs
- PropertyTab.cs
- WebBrowsableAttribute.cs
- TableLayout.cs
- WindowsTooltip.cs
- webeventbuffer.cs
- DetailsViewModeEventArgs.cs
- PropertyMetadata.cs
- MetricEntry.cs
- XamlNamespaceHelper.cs
- CheckBox.cs
- ProfileSection.cs
- SelectionWordBreaker.cs
- DateTimePicker.cs
- ScriptingScriptResourceHandlerSection.cs
- PreProcessor.cs
- WebContext.cs
- CodeTypeReference.cs
- DecodeHelper.cs
- ViewSimplifier.cs
- VersionedStreamOwner.cs
- DockPanel.cs
- CompositeControl.cs
- UnSafeCharBuffer.cs
- PtsPage.cs
- MenuEventArgs.cs
- ChtmlFormAdapter.cs
- Quaternion.cs
- safex509handles.cs
- XmlAtomicValue.cs
- ProxyWebPartConnectionCollection.cs
- CopyEncoder.cs
- AuthenticodeSignatureInformation.cs
- IIS7UserPrincipal.cs
- EntityTypeEmitter.cs
- DataSourceControlBuilder.cs
- SoapAttributeAttribute.cs
- TableCell.cs