Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / MS / Internal / Automation / SelectionItemProviderWrapper.cs / 1 / 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. //---------------------------------------------------------------------------- // //// 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
- CompilationLock.cs
- ErrorReporting.cs
- AuthenticationConfig.cs
- BasicExpandProvider.cs
- ResourceBinder.cs
- WebPartManagerInternals.cs
- ListViewTableRow.cs
- QilTernary.cs
- ProtocolsSection.cs
- LocatorPart.cs
- RijndaelManaged.cs
- errorpatternmatcher.cs
- MenuItemStyle.cs
- ProjectionCamera.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- InvalidDataException.cs
- FixedSOMSemanticBox.cs
- BitmapFrame.cs
- FileReader.cs
- RelationshipEnd.cs
- ListViewItem.cs
- XamlPointCollectionSerializer.cs
- XmlNodeChangedEventArgs.cs
- DiscardableAttribute.cs
- NetMsmqSecurityElement.cs
- PageClientProxyGenerator.cs
- SQLGuidStorage.cs
- MetadataItemCollectionFactory.cs
- WebPartDisplayModeCollection.cs
- TransformerInfoCollection.cs
- SplashScreen.cs
- SafeReversePInvokeHandle.cs
- PixelShader.cs
- HtmlTable.cs
- ScrollableControl.cs
- SQLRoleProvider.cs
- DocumentEventArgs.cs
- TypeConverter.cs
- DateTimeFormatInfoScanner.cs
- Geometry.cs
- ImageSource.cs
- EventDescriptor.cs
- _ConnectionGroup.cs
- Helpers.cs
- SessionStateUtil.cs
- XmlSchemaAnnotated.cs
- XmlRootAttribute.cs
- NativeWindow.cs
- PrintingPermission.cs
- ResourceContainer.cs
- UmAlQuraCalendar.cs
- XmlDataImplementation.cs
- Binding.cs
- XmlSchemaSet.cs
- EncodingDataItem.cs
- AmbientValueAttribute.cs
- ConstNode.cs
- XamlPoint3DCollectionSerializer.cs
- SqlDataSourceCache.cs
- StructuralCache.cs
- storepermission.cs
- XmlUTF8TextWriter.cs
- EntityWithChangeTrackerStrategy.cs
- StyleBamlRecordReader.cs
- ServiceTimeoutsBehavior.cs
- PreviewPrintController.cs
- CfgParser.cs
- ServicesSection.cs
- SuppressIldasmAttribute.cs
- SmtpLoginAuthenticationModule.cs
- UpdatePanelControlTrigger.cs
- RegexNode.cs
- DynamicPropertyHolder.cs
- SystemInfo.cs
- SelectionPattern.cs
- HierarchicalDataBoundControl.cs
- RecordManager.cs
- SSmlParser.cs
- AssemblyBuilder.cs
- AutoSizeComboBox.cs
- ConnectivityStatus.cs
- EDesignUtil.cs
- UrlRoutingHandler.cs
- Vector3DKeyFrameCollection.cs
- DataGridViewCellPaintingEventArgs.cs
- MethodRental.cs
- Color.cs
- QuestionEventArgs.cs
- dsa.cs
- MsmqIntegrationMessagePool.cs
- TaskResultSetter.cs
- DbFunctionCommandTree.cs
- DrawingVisualDrawingContext.cs
- Misc.cs
- StrongName.cs
- ColumnResizeUndoUnit.cs
- DbConnectionPool.cs
- IPAddress.cs
- DocumentPageTextView.cs
- RTTypeWrapper.cs