Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / SelectionProviderWrapper.cs / 1305600 / SelectionProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Selection 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.Collections; using System.Windows.Automation; using System.Windows.Automation.Provider; using System.Windows.Automation.Peers; using System.ComponentModel; 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 SelectionProviderWrapper: MarshalByRefObject, ISelectionProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private SelectionProviderWrapper( AutomationPeer peer, ISelectionProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface ISelectionProvider // //----------------------------------------------------- #region Interface ISelectionProvider public IRawElementProviderSimple [] GetSelection() { return (IRawElementProviderSimple []) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetSelection ), null ); } public bool CanSelectMultiple { get { return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetCanSelectMultiple ), null ); } } public bool IsSelectionRequired { get { return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsSelectionRequired ), null ); } } #endregion Interface ISelectionProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new SelectionProviderWrapper( peer, (ISelectionProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object GetSelection( object unused ) { return _iface.GetSelection(); } private object GetCanSelectMultiple( object unused ) { return _iface.CanSelectMultiple; } private object GetIsSelectionRequired( object unused ) { return _iface.IsSelectionRequired; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private ISelectionProvider _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
- Wizard.cs
- SqlDataSourceCommandParser.cs
- XmlObjectSerializerWriteContext.cs
- BaseCodePageEncoding.cs
- IdentitySection.cs
- SubordinateTransaction.cs
- HtmlInputRadioButton.cs
- NetworkStream.cs
- XamlRtfConverter.cs
- InvokeMethodActivityDesigner.cs
- SqlRecordBuffer.cs
- OLEDB_Enum.cs
- ASCIIEncoding.cs
- OleDbInfoMessageEvent.cs
- RSAPKCS1SignatureFormatter.cs
- Codec.cs
- DbConnectionPoolGroupProviderInfo.cs
- GridViewColumnCollection.cs
- EventListener.cs
- _ConnectionGroup.cs
- SchemaEntity.cs
- FontResourceCache.cs
- RadioButton.cs
- ExtenderProviderService.cs
- FormsAuthenticationCredentials.cs
- GeneralTransform3DGroup.cs
- HttpCachePolicy.cs
- ProviderIncompatibleException.cs
- DependencyPropertyDescriptor.cs
- SystemResourceKey.cs
- VisualCollection.cs
- SQLDouble.cs
- PriorityBinding.cs
- KeyedByTypeCollection.cs
- DataGridViewTextBoxCell.cs
- DecimalAnimationBase.cs
- EnumUnknown.cs
- DoubleStorage.cs
- DragEventArgs.cs
- EncryptedKeyHashIdentifierClause.cs
- SocketStream.cs
- NetCodeGroup.cs
- ImageEditor.cs
- HandledEventArgs.cs
- BuildProvider.cs
- SecurityUtils.cs
- XPathParser.cs
- StateFinalizationActivity.cs
- MultiPageTextView.cs
- SimpleTableProvider.cs
- GPStream.cs
- PenContexts.cs
- TypeLoadException.cs
- DesignTimeVisibleAttribute.cs
- XmlTextEncoder.cs
- FontSourceCollection.cs
- SqlProfileProvider.cs
- Sorting.cs
- DocumentXmlWriter.cs
- XmlBindingWorker.cs
- SchemaSetCompiler.cs
- ContextMarshalException.cs
- TypefaceMetricsCache.cs
- WebEventCodes.cs
- TripleDESCryptoServiceProvider.cs
- figurelength.cs
- DbParameterCollectionHelper.cs
- TabControl.cs
- RuntimeConfig.cs
- WebPartMenu.cs
- ActiveXHost.cs
- TypeConverterMarkupExtension.cs
- WindowsGraphics.cs
- XmlLanguageConverter.cs
- DesignerHelpers.cs
- ZipArchive.cs
- StringInfo.cs
- ConsoleCancelEventArgs.cs
- KnownTypeDataContractResolver.cs
- WmlCalendarAdapter.cs
- TemplateColumn.cs
- MemberInfoSerializationHolder.cs
- FilterQuery.cs
- Converter.cs
- XmlSchemaCollection.cs
- HandledEventArgs.cs
- TypeDependencyAttribute.cs
- PolyBezierSegment.cs
- RegexRunner.cs
- Stack.cs
- PersonalizableAttribute.cs
- LinqExpressionNormalizer.cs
- BaseTemplateCodeDomTreeGenerator.cs
- PropertySegmentSerializationProvider.cs
- PackageProperties.cs
- ISAPIRuntime.cs
- EntityDataSourceChangedEventArgs.cs
- DataGridViewRowCollection.cs
- RangeValuePattern.cs
- AssemblyEvidenceFactory.cs