Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- ChangeBlockUndoRecord.cs
- ReliabilityContractAttribute.cs
- EntityWrapper.cs
- ListBox.cs
- DetailsViewDeletedEventArgs.cs
- StringResourceManager.cs
- DesignerDataView.cs
- LinkButton.cs
- XPathSingletonIterator.cs
- IntPtr.cs
- DataGridRowClipboardEventArgs.cs
- Property.cs
- BindingMemberInfo.cs
- ConnectionPoint.cs
- ListControl.cs
- IdentityReference.cs
- ObjectStateManager.cs
- DataControlField.cs
- TextElementEditingBehaviorAttribute.cs
- DebugHandleTracker.cs
- MemoryRecordBuffer.cs
- LambdaCompiler.Logical.cs
- SqlTopReducer.cs
- RightsManagementInformation.cs
- BridgeDataReader.cs
- WebProxyScriptElement.cs
- RegexCompilationInfo.cs
- Soap11ServerProtocol.cs
- ADRoleFactoryConfiguration.cs
- PassportAuthenticationEventArgs.cs
- RegexReplacement.cs
- Thickness.cs
- NotifyIcon.cs
- HttpServerUtilityBase.cs
- BitmapInitialize.cs
- CheckBoxRenderer.cs
- DeclarationUpdate.cs
- SecurityRuntime.cs
- AsymmetricSignatureDeformatter.cs
- DataGridViewCellLinkedList.cs
- HtmlLinkAdapter.cs
- DurationConverter.cs
- SemaphoreFullException.cs
- SnapLine.cs
- AnnotationStore.cs
- MsmqReceiveHelper.cs
- KnownTypeDataContractResolver.cs
- Symbol.cs
- SmiEventStream.cs
- CombinedGeometry.cs
- ZipIOFileItemStream.cs
- ToolStripMenuItem.cs
- Duration.cs
- BinaryMethodMessage.cs
- SoapAttributes.cs
- SocketInformation.cs
- SiteMembershipCondition.cs
- CodeStatementCollection.cs
- ListChangedEventArgs.cs
- PersonalizablePropertyEntry.cs
- AddingNewEventArgs.cs
- EncodedStreamFactory.cs
- SizeF.cs
- ToolStripSeparator.cs
- BindingCompleteEventArgs.cs
- HttpCacheVaryByContentEncodings.cs
- figurelengthconverter.cs
- VerificationAttribute.cs
- InstancePersistenceEvent.cs
- Part.cs
- DataViewManagerListItemTypeDescriptor.cs
- MasterPageParser.cs
- CustomAttributeFormatException.cs
- TransactionsSectionGroup.cs
- XmlReturnReader.cs
- GenerateHelper.cs
- QueryOperationResponseOfT.cs
- ExplicitDiscriminatorMap.cs
- sitestring.cs
- UInt16Storage.cs
- DefaultAsyncDataDispatcher.cs
- Scene3D.cs
- EventLogPermissionEntry.cs
- ContextDataSourceView.cs
- CacheEntry.cs
- WebUtil.cs
- SecurityAccessDeniedException.cs
- MenuItem.cs
- TypeDescriptor.cs
- SafeSecurityHandles.cs
- ProvideValueServiceProvider.cs
- SrgsText.cs
- Light.cs
- Int64AnimationBase.cs
- StickyNoteContentControl.cs
- VisualBrush.cs
- StringStorage.cs
- SupportsEventValidationAttribute.cs
- MonthChangedEventArgs.cs
- XmlSchemaException.cs