Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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 : [....] 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
- ReachDocumentReferenceSerializerAsync.cs
- MappedMetaModel.cs
- ObjectDataSource.cs
- WindowInteropHelper.cs
- WebEventTraceProvider.cs
- HttpCacheVaryByContentEncodings.cs
- XmlTypeMapping.cs
- TypeBuilder.cs
- PtsPage.cs
- Comparer.cs
- VirtualizingStackPanel.cs
- PropertySet.cs
- NativeMethods.cs
- TextSegment.cs
- AccessibleObject.cs
- CheckBoxFlatAdapter.cs
- lengthconverter.cs
- SqlDataSourceSelectingEventArgs.cs
- ConnectionStringsSection.cs
- IItemContainerGenerator.cs
- KeyedHashAlgorithm.cs
- IncrementalCompileAnalyzer.cs
- CodeIterationStatement.cs
- IdentityValidationException.cs
- Shape.cs
- InertiaRotationBehavior.cs
- ImageIndexConverter.cs
- BindingBase.cs
- HeaderedItemsControl.cs
- TokenizerHelper.cs
- GuidelineCollection.cs
- RectValueSerializer.cs
- TagPrefixInfo.cs
- DBSqlParserColumn.cs
- DirectoryObjectSecurity.cs
- TableStyle.cs
- PeerCollaborationPermission.cs
- NamedElement.cs
- BrowserCapabilitiesCompiler.cs
- DataGridViewDataErrorEventArgs.cs
- SqlRecordBuffer.cs
- SecureConversationDriver.cs
- AsmxEndpointPickerExtension.cs
- TextSyndicationContent.cs
- InfiniteTimeSpanConverter.cs
- VersionUtil.cs
- Char.cs
- NavigateEvent.cs
- CalloutQueueItem.cs
- Size.cs
- XmlC14NWriter.cs
- FileDialog.cs
- Button.cs
- HtmlMeta.cs
- Viewport3DAutomationPeer.cs
- CallContext.cs
- EncoderBestFitFallback.cs
- FormsAuthenticationTicket.cs
- MultiView.cs
- ETagAttribute.cs
- GenericTypeParameterBuilder.cs
- InteropTrackingRecord.cs
- LinqDataSourceContextEventArgs.cs
- ViewStateException.cs
- IconHelper.cs
- ManagedFilter.cs
- QueryExpression.cs
- WizardPanel.cs
- ToolStripContentPanelDesigner.cs
- Scanner.cs
- SessionStateModule.cs
- X509CertificateValidator.cs
- CultureTableRecord.cs
- Avt.cs
- SmiEventSink_DeferedProcessing.cs
- DesignerProperties.cs
- ExpressionConverter.cs
- Icon.cs
- AccessViolationException.cs
- HMACSHA1.cs
- ColorDialog.cs
- GenericTextProperties.cs
- CompilationLock.cs
- PropertiesTab.cs
- ValidationSummary.cs
- RelOps.cs
- HttpModuleActionCollection.cs
- InputProcessorProfilesLoader.cs
- _TLSstream.cs
- DisplayMemberTemplateSelector.cs
- CachedTypeface.cs
- XPathParser.cs
- EntityChangedParams.cs
- ObjectSet.cs
- TypeReference.cs
- DSASignatureFormatter.cs
- StaticDataManager.cs
- ReferentialConstraint.cs
- CookieParameter.cs
- sqlinternaltransaction.cs