Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / InvokeProviderWrapper.cs / 1305600 / InvokeProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Invoke 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.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 InvokeProviderWrapper: MarshalByRefObject, IInvokeProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private InvokeProviderWrapper( AutomationPeer peer, IInvokeProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IInvokeProvider // //----------------------------------------------------- #region Interface IInvokeProvider public void Invoke() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Invoke ), null ); } #endregion Interface IInvokeProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new InvokeProviderWrapper( peer, (IInvokeProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object Invoke( object unused ) { _iface.Invoke(); return null; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IInvokeProvider _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: Invoke 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.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 InvokeProviderWrapper: MarshalByRefObject, IInvokeProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private InvokeProviderWrapper( AutomationPeer peer, IInvokeProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IInvokeProvider // //----------------------------------------------------- #region Interface IInvokeProvider public void Invoke() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Invoke ), null ); } #endregion Interface IInvokeProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new InvokeProviderWrapper( peer, (IInvokeProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object Invoke( object unused ) { _iface.Invoke(); return null; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IInvokeProvider _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
- WorkflowValidationFailedException.cs
- HandlerBase.cs
- CommandValueSerializer.cs
- OleDbConnection.cs
- DebugControllerThread.cs
- Security.cs
- XomlCompilerHelpers.cs
- Pair.cs
- ConfigurationPropertyAttribute.cs
- RectConverter.cs
- ECDsaCng.cs
- TrustLevel.cs
- AuthStoreRoleProvider.cs
- SizeAnimationBase.cs
- RandomNumberGenerator.cs
- FormsAuthenticationModule.cs
- unsafenativemethodsother.cs
- PropertyIDSet.cs
- ResourceDictionaryCollection.cs
- SendActivityDesignerTheme.cs
- FixedDocument.cs
- SecurityTokenAuthenticator.cs
- SafeCertificateContext.cs
- KeyProperty.cs
- BulletDecorator.cs
- SignatureToken.cs
- DependencyPropertyHelper.cs
- DBConcurrencyException.cs
- WindowsListViewScroll.cs
- SendMailErrorEventArgs.cs
- DbParameterCollectionHelper.cs
- UriScheme.cs
- CollectionChangedEventManager.cs
- ScrollProviderWrapper.cs
- InvalidOperationException.cs
- CmsInterop.cs
- EllipticalNodeOperations.cs
- DoubleIndependentAnimationStorage.cs
- AudioLevelUpdatedEventArgs.cs
- Track.cs
- BindingParameterCollection.cs
- Geometry.cs
- UnmanagedMemoryStream.cs
- Rotation3DAnimation.cs
- CodeGroup.cs
- DataRowComparer.cs
- UnsafePeerToPeerMethods.cs
- HtmlForm.cs
- OracleMonthSpan.cs
- PropertyMetadata.cs
- PointF.cs
- RuleValidation.cs
- TextTabProperties.cs
- ShaderEffect.cs
- XmlLinkedNode.cs
- ListenDesigner.cs
- GenericIdentity.cs
- KeyTime.cs
- JsonWriter.cs
- ArgumentDirectionHelper.cs
- smtppermission.cs
- MemberRestriction.cs
- JsonStringDataContract.cs
- ExpressionNode.cs
- TreeNodeStyle.cs
- DiscoveryDocument.cs
- HttpProcessUtility.cs
- TypeGeneratedEventArgs.cs
- ApplicationFileCodeDomTreeGenerator.cs
- DataGridViewRowPrePaintEventArgs.cs
- _DomainName.cs
- WorkItem.cs
- EntitySetBaseCollection.cs
- ProxyManager.cs
- TableColumn.cs
- PipeException.cs
- Rectangle.cs
- TextEditorContextMenu.cs
- XPathNavigator.cs
- ExpressionHelper.cs
- DropDownButton.cs
- EntityDataSourceStatementEditorForm.cs
- PagedDataSource.cs
- DataTemplateSelector.cs
- ToolStrip.cs
- DataContractJsonSerializer.cs
- SoapCodeExporter.cs
- WindowsIPAddress.cs
- DataGrid.cs
- UserControlParser.cs
- PersonalizationProviderHelper.cs
- CharacterString.cs
- ComponentResourceKeyConverter.cs
- _ProxyChain.cs
- Types.cs
- BuildResult.cs
- UnsafeNativeMethods.cs
- LinkDescriptor.cs
- MetabaseSettingsIis7.cs
- URLMembershipCondition.cs