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
- RequestBringIntoViewEventArgs.cs
- ContentFilePart.cs
- EntityDataSourceDesigner.cs
- HttpCookiesSection.cs
- DocumentGridPage.cs
- MultiBindingExpression.cs
- StorageConditionPropertyMapping.cs
- AppSettingsExpressionEditor.cs
- BuiltInPermissionSets.cs
- AdapterUtil.cs
- ISAPIApplicationHost.cs
- XhtmlConformanceSection.cs
- Rect3D.cs
- ChannelManager.cs
- InternalControlCollection.cs
- MultiSelector.cs
- SHA384Cng.cs
- PtsContext.cs
- DesignerCategoryAttribute.cs
- CompilerLocalReference.cs
- RepeatBehavior.cs
- UserControlBuildProvider.cs
- WindowsButton.cs
- BinaryParser.cs
- SerializationObjectManager.cs
- PrintPreviewControl.cs
- OleDbConnectionFactory.cs
- ToolStripDropDownClosingEventArgs.cs
- InvalidComObjectException.cs
- DeadCharTextComposition.cs
- EdmEntityTypeAttribute.cs
- HwndProxyElementProvider.cs
- StateMachineWorkflowDesigner.cs
- BasicHttpMessageSecurity.cs
- ListViewInsertEventArgs.cs
- SocketAddress.cs
- DecoderFallback.cs
- SiteIdentityPermission.cs
- cookiecontainer.cs
- RealizationDrawingContextWalker.cs
- SystemThemeKey.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- PageWrapper.cs
- Button.cs
- AlternateView.cs
- ImageListUtils.cs
- EntityDataSourceSelectingEventArgs.cs
- BrowserDefinition.cs
- WebServiceResponse.cs
- ColumnMapProcessor.cs
- OrthographicCamera.cs
- PingOptions.cs
- TimeSpanStorage.cs
- Tool.cs
- BaseTemplateBuildProvider.cs
- QueuePropertyVariants.cs
- DataGridViewButtonColumn.cs
- RequiredFieldValidator.cs
- PeerPresenceInfo.cs
- URLMembershipCondition.cs
- CommandField.cs
- KnownTypesHelper.cs
- MatrixAnimationUsingPath.cs
- mansign.cs
- WebSysDefaultValueAttribute.cs
- RotateTransform.cs
- SQLUtility.cs
- GetPageNumberCompletedEventArgs.cs
- InputQueueChannel.cs
- Soap12FormatExtensions.cs
- InputLanguageCollection.cs
- CallTemplateAction.cs
- ModifierKeysConverter.cs
- EnumerableCollectionView.cs
- RecordBuilder.cs
- ConfigXmlSignificantWhitespace.cs
- ContentOperations.cs
- TextFindEngine.cs
- DispatcherProcessingDisabled.cs
- Validator.cs
- HtmlContainerControl.cs
- TypeDelegator.cs
- Popup.cs
- SchemaDeclBase.cs
- TextBoxDesigner.cs
- ItemAutomationPeer.cs
- RegexCharClass.cs
- DynamicValueConverter.cs
- CodeRegionDirective.cs
- SByteConverter.cs
- DetailsViewUpdateEventArgs.cs
- TextOutput.cs
- ScriptingRoleServiceSection.cs
- SynchronizedDispatch.cs
- ResourcesBuildProvider.cs
- BuiltInPermissionSets.cs
- KeyGestureConverter.cs
- TraceRecords.cs
- ResourceCategoryAttribute.cs
- EllipseGeometry.cs