Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / ToggleProviderWrapper.cs / 1305600 / ToggleProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Toggle pattern provider wrapper for WCP // // History: // 02/04/2004 : MKarr wrote // //--------------------------------------------------------------------------- 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 ToggleProviderWrapper: MarshalByRefObject, IToggleProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private ToggleProviderWrapper( AutomationPeer peer, IToggleProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IValueProvider // //----------------------------------------------------- #region Interface IToggleProvider public void Toggle( ) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( ToggleInternal ), null ); } public ToggleState ToggleState { get { return (ToggleState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetToggleState ), null ); } } #endregion Interface IToggleProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new ToggleProviderWrapper( peer, (IToggleProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object ToggleInternal( object unused ) { _iface.Toggle(); return null; } private object GetToggleState( object unused ) { return _iface.ToggleState; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IToggleProvider _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: Toggle pattern provider wrapper for WCP // // History: // 02/04/2004 : MKarr wrote // //--------------------------------------------------------------------------- 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 ToggleProviderWrapper: MarshalByRefObject, IToggleProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private ToggleProviderWrapper( AutomationPeer peer, IToggleProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IValueProvider // //----------------------------------------------------- #region Interface IToggleProvider public void Toggle( ) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( ToggleInternal ), null ); } public ToggleState ToggleState { get { return (ToggleState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetToggleState ), null ); } } #endregion Interface IToggleProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new ToggleProviderWrapper( peer, (IToggleProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object ToggleInternal( object unused ) { _iface.Toggle(); return null; } private object GetToggleState( object unused ) { return _iface.ToggleState; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IToggleProvider _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
- DefaultDialogButtons.cs
- MenuCommand.cs
- SQLDateTimeStorage.cs
- PartialCachingAttribute.cs
- BindingMAnagerBase.cs
- Membership.cs
- DesignerView.Commands.cs
- Utils.cs
- DetailsViewInsertEventArgs.cs
- AccessDataSource.cs
- Span.cs
- DataConnectionHelper.cs
- Rules.cs
- AutomationElement.cs
- PersistenceContext.cs
- StringPropertyBuilder.cs
- PopupRoot.cs
- SystemIcmpV6Statistics.cs
- TrustManagerPromptUI.cs
- altserialization.cs
- RootBrowserWindowAutomationPeer.cs
- SoapDocumentServiceAttribute.cs
- Point3DCollectionValueSerializer.cs
- XamlStream.cs
- FormViewUpdateEventArgs.cs
- Visitors.cs
- TemplateControl.cs
- ToolBarButtonDesigner.cs
- DependencyObjectProvider.cs
- TrackingStringDictionary.cs
- _ListenerResponseStream.cs
- OleDbTransaction.cs
- _ShellExpression.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- DataFieldEditor.cs
- TypeLibraryHelper.cs
- WebPartVerbsEventArgs.cs
- Base64Stream.cs
- TimeSpanSecondsConverter.cs
- UIElement.cs
- SqlTopReducer.cs
- ISessionStateStore.cs
- PageOutputColor.cs
- HostedElements.cs
- WebEncodingValidator.cs
- BackgroundFormatInfo.cs
- BookmarkScopeManager.cs
- FixedTextSelectionProcessor.cs
- ReadOnlyCollectionBuilder.cs
- XmlCharCheckingWriter.cs
- WindowsSidIdentity.cs
- Formatter.cs
- Attribute.cs
- HttpRawResponse.cs
- ParsedAttributeCollection.cs
- PassportAuthenticationEventArgs.cs
- OciHandle.cs
- ProjectionCamera.cs
- AdapterUtil.cs
- UInt32Storage.cs
- Error.cs
- ArrangedElement.cs
- HttpCapabilitiesSectionHandler.cs
- XamlSerializer.cs
- AddingNewEventArgs.cs
- ParameterBuilder.cs
- NavigatorInvalidBodyAccessException.cs
- SerializationException.cs
- EnumDataContract.cs
- TextTreeText.cs
- ConfigXmlWhitespace.cs
- LinearGradientBrush.cs
- DoubleStorage.cs
- ToolStripDropDownItem.cs
- BamlResourceSerializer.cs
- DesignerView.xaml.cs
- ObjectDataSourceDisposingEventArgs.cs
- TransformerInfo.cs
- ParserContext.cs
- input.cs
- InvalidDataException.cs
- WebPartConnectionsCancelEventArgs.cs
- DependencyObjectProvider.cs
- DbMetaDataFactory.cs
- PermissionListSet.cs
- IncrementalHitTester.cs
- externdll.cs
- TypeHelpers.cs
- TableItemPattern.cs
- _SslSessionsCache.cs
- DataGridTable.cs
- SoapFault.cs
- FormViewDeleteEventArgs.cs
- RangeValidator.cs
- TraceContextRecord.cs
- PerformanceCounterCategory.cs
- SerializeAbsoluteContext.cs
- IgnoreSectionHandler.cs
- AssociationTypeEmitter.cs
- TemplateAction.cs