Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / MS / Internal / Automation / ToggleProviderWrapper.cs / 1 / 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
- NotifyIcon.cs
- MetadataSource.cs
- AdornerPresentationContext.cs
- Panel.cs
- CompositionTarget.cs
- CriticalExceptions.cs
- SystemNetHelpers.cs
- _UncName.cs
- ConfigurationProperty.cs
- SafeLocalMemHandle.cs
- BamlStream.cs
- ChildTable.cs
- CompoundFileReference.cs
- TemplateField.cs
- ServiceModelConfiguration.cs
- TableCellsCollectionEditor.cs
- LinkArea.cs
- ScriptReference.cs
- regiisutil.cs
- TextEndOfSegment.cs
- Point3DAnimation.cs
- Set.cs
- DefaultAsyncDataDispatcher.cs
- ButtonColumn.cs
- _SslState.cs
- UdpRetransmissionSettings.cs
- KeysConverter.cs
- HtmlForm.cs
- SplitContainer.cs
- XmlAttributeAttribute.cs
- DataTableMappingCollection.cs
- Simplifier.cs
- GestureRecognizer.cs
- EntityProviderFactory.cs
- HandleCollector.cs
- ThreadStartException.cs
- HtmlElementEventArgs.cs
- _NetRes.cs
- WindowAutomationPeer.cs
- WindowPattern.cs
- DataKey.cs
- DelegateTypeInfo.cs
- VirtualPath.cs
- xmlfixedPageInfo.cs
- ObfuscationAttribute.cs
- KeyInfo.cs
- NumberEdit.cs
- NamedElement.cs
- ListBoxAutomationPeer.cs
- ValidatingReaderNodeData.cs
- Propagator.Evaluator.cs
- Int64AnimationBase.cs
- ParentQuery.cs
- Point4D.cs
- ColorConvertedBitmap.cs
- ObjectConverter.cs
- ServiceMemoryGates.cs
- BindingExpression.cs
- ObjectParameterCollection.cs
- _SingleItemRequestCache.cs
- WindowsButton.cs
- FontCacheLogic.cs
- HttpHandlersSection.cs
- Ticks.cs
- NumberFunctions.cs
- Synchronization.cs
- CfgSemanticTag.cs
- EntityDataSourceWrapper.cs
- ObjectConverter.cs
- dbenumerator.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ErrorHandler.cs
- MDIControlStrip.cs
- TraceSwitch.cs
- ArraySortHelper.cs
- XmlArrayAttribute.cs
- LinqDataSourceValidationException.cs
- DataGridViewCell.cs
- ExecutionEngineException.cs
- BinaryNode.cs
- ColumnHeader.cs
- SEHException.cs
- Baml6Assembly.cs
- CultureSpecificCharacterBufferRange.cs
- Schema.cs
- XdrBuilder.cs
- ScrollEventArgs.cs
- ModuleConfigurationInfo.cs
- CacheVirtualItemsEvent.cs
- TreeNode.cs
- PointLightBase.cs
- SqlVersion.cs
- ProxyWebPartConnectionCollection.cs
- OLEDB_Enum.cs
- altserialization.cs
- recordstatescratchpad.cs
- Monitor.cs
- MouseGesture.cs
- UIElement3DAutomationPeer.cs
- TextCompositionManager.cs