Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / SelectionItemProviderWrapper.cs / 1305600 / SelectionItemProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Selection 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.Collections; 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 SelectionItemProviderWrapper: MarshalByRefObject, ISelectionItemProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private SelectionItemProviderWrapper( AutomationPeer peer, ISelectionItemProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface ISelectionItemProvider // //----------------------------------------------------- #region Interface ISelectionItemProvider public void Select() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Select ), null ); } public void AddToSelection() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( AddToSelection ), null ); } public void RemoveFromSelection() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( RemoveFromSelection ), null ); } public bool IsSelected { get { return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsSelected ), null ); } } public IRawElementProviderSimple SelectionContainer { get { return (IRawElementProviderSimple) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetSelectionContainer ), null ); } } #endregion Interface ISelectionItemProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new SelectionItemProviderWrapper( peer, (ISelectionItemProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object Select( object unused ) { _iface.Select(); return null; } private object AddToSelection( object unused ) { _iface.AddToSelection(); return null; } private object RemoveFromSelection( object unused ) { _iface.RemoveFromSelection(); return null; } private object GetIsSelected( object unused ) { return _iface.IsSelected; } private object GetSelectionContainer( object unused ) { return _iface.SelectionContainer; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private ISelectionItemProvider _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
- AsyncOperationManager.cs
- QueryAccessibilityHelpEvent.cs
- AutoResizedEvent.cs
- WebControlToolBoxItem.cs
- LayoutEditorPart.cs
- MgmtResManager.cs
- ForEachAction.cs
- DetailsViewRow.cs
- BaseCollection.cs
- BufferedGraphicsContext.cs
- EntityDataSourceState.cs
- DataMemberFieldEditor.cs
- CellConstant.cs
- BuildDependencySet.cs
- Vector.cs
- CompositionCommandSet.cs
- LambdaCompiler.Expressions.cs
- Types.cs
- CommonRemoteMemoryBlock.cs
- ToolBarButton.cs
- BrowserCapabilitiesFactory.cs
- RowParagraph.cs
- BindingGroup.cs
- PropertyChangingEventArgs.cs
- Image.cs
- Int64Storage.cs
- CodeCastExpression.cs
- ButtonChrome.cs
- InvalidChannelBindingException.cs
- MouseWheelEventArgs.cs
- AsyncPostBackErrorEventArgs.cs
- KeySplineConverter.cs
- ServiceModelPerformanceCounters.cs
- TypeElementCollection.cs
- TreeNode.cs
- FlowDocumentPage.cs
- Knowncolors.cs
- XamlDesignerSerializationManager.cs
- LoginUtil.cs
- SafeHandle.cs
- ToolStripButton.cs
- CatalogZoneDesigner.cs
- Inline.cs
- GB18030Encoding.cs
- UITypeEditor.cs
- CurrencyWrapper.cs
- DateTime.cs
- NaturalLanguageHyphenator.cs
- WSIdentityFaultException.cs
- HostedTransportConfigurationBase.cs
- ListView.cs
- MemberExpression.cs
- CompiledELinqQueryState.cs
- FigureHelper.cs
- CqlParserHelpers.cs
- SqlBulkCopyColumnMapping.cs
- BufferedResponseStream.cs
- OpCellTreeNode.cs
- _LazyAsyncResult.cs
- _TLSstream.cs
- LayoutDump.cs
- DtdParser.cs
- XslTransform.cs
- MetadataPropertyCollection.cs
- _BufferOffsetSize.cs
- ControlType.cs
- StringBuilder.cs
- InputMethodStateTypeInfo.cs
- infer.cs
- PropertyMetadata.cs
- ObjectViewQueryResultData.cs
- NativeMethods.cs
- PermissionSetTriple.cs
- CompareValidator.cs
- SignatureHelper.cs
- ResolveInfo.cs
- ExpressionEvaluator.cs
- PathStreamGeometryContext.cs
- ToolStripDropTargetManager.cs
- SqlResolver.cs
- StylusPointProperties.cs
- BasicViewGenerator.cs
- ValueUnavailableException.cs
- DigestTraceRecordHelper.cs
- CalendarAutoFormat.cs
- Identity.cs
- RepeatBehavior.cs
- ObjectAnimationBase.cs
- ConfigurationManagerInternal.cs
- Panel.cs
- RowVisual.cs
- RowType.cs
- cookiecontainer.cs
- RuleSettings.cs
- keycontainerpermission.cs
- ExternalFile.cs
- TextParagraphCache.cs
- XmlDataSourceNodeDescriptor.cs
- WebPartConnectionsCancelEventArgs.cs
- SafeNativeMethods.cs