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
- _Win32.cs
- NameValuePermission.cs
- ReaderOutput.cs
- GestureRecognizer.cs
- CompoundFileStorageReference.cs
- ObjectView.cs
- cryptoapiTransform.cs
- XmlDataLoader.cs
- XmlJsonReader.cs
- MappedMetaModel.cs
- InstanceKeyCollisionException.cs
- AttributeXamlType.cs
- BCLDebug.cs
- DiscoveryExceptionDictionary.cs
- TraceLevelStore.cs
- SqlDataSource.cs
- GeometryCombineModeValidation.cs
- AutomationElement.cs
- CookieHandler.cs
- DataGridAddNewRow.cs
- NonVisualControlAttribute.cs
- mil_sdk_version.cs
- WebPartDisplayModeEventArgs.cs
- SamlSubject.cs
- COM2ExtendedBrowsingHandler.cs
- PageAdapter.cs
- MouseOverProperty.cs
- XmlSchemaValidator.cs
- ControlDesigner.cs
- XmlFormatWriterGenerator.cs
- ManagedFilter.cs
- FunctionQuery.cs
- ContentDisposition.cs
- DbProviderFactoriesConfigurationHandler.cs
- CryptoStream.cs
- XamlToRtfWriter.cs
- ApplicationServiceManager.cs
- Visual3DCollection.cs
- CommonObjectSecurity.cs
- TypeContext.cs
- XPathPatternBuilder.cs
- StateDesigner.Helpers.cs
- ButtonPopupAdapter.cs
- SystemWebSectionGroup.cs
- WaitForChangedResult.cs
- UriTemplateEquivalenceComparer.cs
- NumericUpDownAccelerationCollection.cs
- RSAPKCS1SignatureDeformatter.cs
- TemplateBindingExpressionConverter.cs
- TextTreeText.cs
- ClientRolePrincipal.cs
- TcpClientChannel.cs
- KnownTypesHelper.cs
- _ListenerRequestStream.cs
- WindowsHyperlink.cs
- HierarchicalDataBoundControlAdapter.cs
- DataRecordInternal.cs
- CacheOutputQuery.cs
- DynamicResourceExtensionConverter.cs
- TraceHandlerErrorFormatter.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- SingleObjectCollection.cs
- TargetConverter.cs
- OdbcReferenceCollection.cs
- DatePickerDateValidationErrorEventArgs.cs
- SqlRowUpdatingEvent.cs
- TraceEventCache.cs
- BitmapInitialize.cs
- RealizationContext.cs
- CodeVariableDeclarationStatement.cs
- BaseAppDomainProtocolHandler.cs
- DaylightTime.cs
- ThreadStateException.cs
- CustomAttributeBuilder.cs
- SecurityElement.cs
- _SslState.cs
- HtmlInputReset.cs
- addressfiltermode.cs
- DesignerActionPropertyItem.cs
- ElapsedEventArgs.cs
- WebBrowserNavigatingEventHandler.cs
- XmlLanguageConverter.cs
- TemplateControlParser.cs
- PropertyGroupDescription.cs
- CodeTypeDeclarationCollection.cs
- ParentUndoUnit.cs
- ConfigXmlElement.cs
- ViewManager.cs
- PrinterResolution.cs
- SystemColors.cs
- assemblycache.cs
- CompilationPass2TaskInternal.cs
- WebBaseEventKeyComparer.cs
- AttachedAnnotationChangedEventArgs.cs
- DataRelationCollection.cs
- CopyAction.cs
- FreeFormDesigner.cs
- InputBinder.cs
- X509CertificateCollection.cs
- DynamicObjectAccessor.cs