Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / SynchronizedInputProviderWrapper.cs / 1305600 / SynchronizedInputProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: SynchronizedInput pattern provider wrapper for WCP // // History: // 11/10/2008 : Added by [....] // //--------------------------------------------------------------------------- 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 SynchronizedInputProviderWrapper: MarshalByRefObject, ISynchronizedInputProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private SynchronizedInputProviderWrapper( AutomationPeer peer, ISynchronizedInputProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface ISynchronizedInputProvider // //----------------------------------------------------- #region Interface ISynchronizedInputProvider public void StartListening(SynchronizedInputType inputType) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( StartListening ), inputType ); } public void Cancel() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Cancel ), null ); } #endregion Interface ISynchronizedInputProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new SynchronizedInputProviderWrapper( peer, (ISynchronizedInputProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object StartListening( object arg ) { _iface.StartListening((SynchronizedInputType)arg); return null; } private object Cancel( object unused ) { _iface.Cancel(); return null; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private ISynchronizedInputProvider _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: SynchronizedInput pattern provider wrapper for WCP // // History: // 11/10/2008 : Added by [....] // //--------------------------------------------------------------------------- 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 SynchronizedInputProviderWrapper: MarshalByRefObject, ISynchronizedInputProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private SynchronizedInputProviderWrapper( AutomationPeer peer, ISynchronizedInputProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface ISynchronizedInputProvider // //----------------------------------------------------- #region Interface ISynchronizedInputProvider public void StartListening(SynchronizedInputType inputType) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( StartListening ), inputType ); } public void Cancel() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Cancel ), null ); } #endregion Interface ISynchronizedInputProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new SynchronizedInputProviderWrapper( peer, (ISynchronizedInputProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object StartListening( object arg ) { _iface.StartListening((SynchronizedInputType)arg); return null; } private object Cancel( object unused ) { _iface.Cancel(); return null; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private ISynchronizedInputProvider _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
- BitmapCacheBrush.cs
- AsyncPostBackErrorEventArgs.cs
- XmlSerializerNamespaces.cs
- CodeMethodReturnStatement.cs
- XmlSchemaComplexType.cs
- Int16Storage.cs
- ImmutablePropertyDescriptorGridEntry.cs
- ViewBase.cs
- AuthenticationManager.cs
- CommandDevice.cs
- CodeDomLoader.cs
- ConstraintEnumerator.cs
- PathFigureCollectionConverter.cs
- _HeaderInfo.cs
- DBSchemaTable.cs
- SchemaMapping.cs
- ValueConversionAttribute.cs
- CallContext.cs
- GestureRecognitionResult.cs
- URL.cs
- RC2CryptoServiceProvider.cs
- ComponentChangedEvent.cs
- EdmToObjectNamespaceMap.cs
- ResourceIDHelper.cs
- ApplicationException.cs
- StatusBarAutomationPeer.cs
- SessionState.cs
- XmlReflectionMember.cs
- ListCollectionView.cs
- ReturnEventArgs.cs
- OperatingSystem.cs
- SamlAttributeStatement.cs
- MemberExpression.cs
- SqlGenerator.cs
- ScriptResourceAttribute.cs
- RotateTransform3D.cs
- OutputCacheSettingsSection.cs
- CannotUnloadAppDomainException.cs
- HtmlEncodedRawTextWriter.cs
- DataSourceListEditor.cs
- EntityUtil.cs
- ProviderCommandInfoUtils.cs
- ObjectCache.cs
- CompositeFontParser.cs
- HttpCapabilitiesEvaluator.cs
- SR.cs
- MailWriter.cs
- DatePicker.cs
- WebPartEditVerb.cs
- PointConverter.cs
- InternalUserCancelledException.cs
- Int64KeyFrameCollection.cs
- SelectedGridItemChangedEvent.cs
- CollectionViewGroupInternal.cs
- PowerStatus.cs
- ConfigXmlAttribute.cs
- CodeDirectiveCollection.cs
- Helpers.cs
- CachedCompositeFamily.cs
- HttpListener.cs
- XmlHierarchyData.cs
- DropShadowEffect.cs
- RadialGradientBrush.cs
- ClassValidator.cs
- mediaeventshelper.cs
- ClusterRegistryConfigurationProvider.cs
- ConversionContext.cs
- BitmapEffect.cs
- SecurityTokenSerializer.cs
- LiteralTextContainerControlBuilder.cs
- DCSafeHandle.cs
- SchemaManager.cs
- RequestCacheEntry.cs
- SqlDataSourceView.cs
- PeerInvitationResponse.cs
- EnumType.cs
- RowCache.cs
- HttpResponseHeader.cs
- sitestring.cs
- ListenerSessionConnectionReader.cs
- PermissionSetTriple.cs
- WebServiceEnumData.cs
- XPathChildIterator.cs
- PatternMatcher.cs
- ObjectDataSourceView.cs
- MultipartIdentifier.cs
- AutomationElement.cs
- SmtpNetworkElement.cs
- ResponseBodyWriter.cs
- MeasureItemEvent.cs
- Source.cs
- HMACSHA384.cs
- WorkflowNamespace.cs
- CompilerTypeWithParams.cs
- TextFormatterHost.cs
- FixedStringLookup.cs
- StrongTypingException.cs
- XmlJsonReader.cs
- PartitionerStatic.cs
- DecoratedNameAttribute.cs