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
- PerformanceCounterManager.cs
- TrimSurroundingWhitespaceAttribute.cs
- EventLogPermissionEntry.cs
- ListViewGroup.cs
- SiteMapDataSource.cs
- DeferredTextReference.cs
- storagemappingitemcollection.viewdictionary.cs
- RIPEMD160.cs
- EntityContainerAssociationSetEnd.cs
- WebServiceParameterData.cs
- CommandSet.cs
- MatrixConverter.cs
- DeriveBytes.cs
- NativeCppClassAttribute.cs
- Brushes.cs
- DataQuery.cs
- Util.cs
- TimeZone.cs
- HttpCookieCollection.cs
- ECDsaCng.cs
- InputReferenceExpression.cs
- ColorConverter.cs
- FixedPageStructure.cs
- GeometryGroup.cs
- XmlDocument.cs
- VerificationException.cs
- TextSimpleMarkerProperties.cs
- BaseInfoTable.cs
- CustomMenuItemCollection.cs
- StructuredTypeEmitter.cs
- mediapermission.cs
- EntityDataSourceEntitySetNameItem.cs
- AccessControlEntry.cs
- GeneralTransform3DTo2DTo3D.cs
- KeyPressEvent.cs
- Storyboard.cs
- Double.cs
- HtmlTableRow.cs
- ImageListUtils.cs
- DecoderBestFitFallback.cs
- Encoder.cs
- SqlDataAdapter.cs
- IPipelineRuntime.cs
- MessageBox.cs
- OleStrCAMarshaler.cs
- LinqDataSourceHelper.cs
- FontStyle.cs
- EditingScope.cs
- DesignerForm.cs
- HttpMethodAttribute.cs
- TreeNodeConverter.cs
- BitmapEffectInput.cs
- EntityDataSourceEntityTypeFilterItem.cs
- QueueProcessor.cs
- PrePrepareMethodAttribute.cs
- AvTraceFormat.cs
- WebPartActionVerb.cs
- StrongNameIdentityPermission.cs
- DataGridCellInfo.cs
- CqlGenerator.cs
- MutexSecurity.cs
- LongValidator.cs
- WebDescriptionAttribute.cs
- SqlMetaData.cs
- DoubleLink.cs
- PackageDigitalSignature.cs
- CodeGenerationManager.cs
- ComboBoxRenderer.cs
- ValidatingPropertiesEventArgs.cs
- CaseInsensitiveComparer.cs
- MemoryRecordBuffer.cs
- COM2PropertyBuilderUITypeEditor.cs
- AssociatedControlConverter.cs
- ContentPosition.cs
- QilParameter.cs
- XamlTypeMapper.cs
- DesignerTransaction.cs
- SqlCacheDependency.cs
- BounceEase.cs
- SqlProcedureAttribute.cs
- DataDocumentXPathNavigator.cs
- DbModificationClause.cs
- TypeGeneratedEventArgs.cs
- FigureParaClient.cs
- SelectionUIHandler.cs
- HttpCacheParams.cs
- TaskFormBase.cs
- MSAAEventDispatcher.cs
- ProtectedConfiguration.cs
- CompositionCommandSet.cs
- FontUnitConverter.cs
- XsltArgumentList.cs
- PageDeviceFont.cs
- TypeSource.cs
- AssemblyHash.cs
- ComEventsInfo.cs
- RequestedSignatureDialog.cs
- WorkflowOwnershipException.cs
- ReferenceEqualityComparer.cs
- DBSqlParserTableCollection.cs