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
- ObjectDataSourceWizardForm.cs
- BamlVersionHeader.cs
- Table.cs
- SafeNativeMethods.cs
- SiteMapPathDesigner.cs
- cache.cs
- AxisAngleRotation3D.cs
- KeyValuePair.cs
- SR.cs
- Literal.cs
- HttpFileCollection.cs
- TextEditorTyping.cs
- RawStylusInputCustomData.cs
- SettingsSection.cs
- TypeListConverter.cs
- GridViewUpdatedEventArgs.cs
- SecurityManager.cs
- CodeExpressionCollection.cs
- DefaultBinder.cs
- ListItemCollection.cs
- MSHTMLHost.cs
- ManifestSignatureInformation.cs
- WebBrowsableAttribute.cs
- Table.cs
- DisableDpiAwarenessAttribute.cs
- ObjectDataSourceDisposingEventArgs.cs
- WebPartEditVerb.cs
- RangeValueProviderWrapper.cs
- IndentTextWriter.cs
- XmlNotation.cs
- TemplateComponentConnector.cs
- SiteOfOriginPart.cs
- Mappings.cs
- documentsequencetextview.cs
- XPathAncestorQuery.cs
- CacheMode.cs
- Header.cs
- SiteMapProvider.cs
- DataBindingList.cs
- ParallelTimeline.cs
- PageMediaSize.cs
- AbstractDataSvcMapFileLoader.cs
- EdmItemError.cs
- ComponentDispatcherThread.cs
- AbstractDataSvcMapFileLoader.cs
- ExtractCollection.cs
- PlaceHolder.cs
- UserControlAutomationPeer.cs
- GeneralTransformCollection.cs
- PolicyUnit.cs
- ActivityDesigner.cs
- VirtualizingStackPanel.cs
- HtmlFormWrapper.cs
- SettingsPropertyCollection.cs
- ErrorWrapper.cs
- SessionPageStatePersister.cs
- WorkflowDesignerColors.cs
- OleServicesContext.cs
- XNodeValidator.cs
- GenericAuthenticationEventArgs.cs
- RelationshipDetailsRow.cs
- EFDataModelProvider.cs
- XmlSchemaObjectTable.cs
- DataGridParentRows.cs
- IssuanceLicense.cs
- PersonalizationStateQuery.cs
- ScriptMethodAttribute.cs
- DependencyObject.cs
- TailCallAnalyzer.cs
- ExtendedProtectionPolicy.cs
- SoapInteropTypes.cs
- ResourceIDHelper.cs
- TraceHandlerErrorFormatter.cs
- ServiceKnownTypeAttribute.cs
- HashHelper.cs
- Switch.cs
- MediaCommands.cs
- FormViewUpdatedEventArgs.cs
- mediaclock.cs
- DataObject.cs
- AlternateView.cs
- PasswordRecoveryAutoFormat.cs
- ContentElement.cs
- EventWaitHandleSecurity.cs
- X509IssuerSerialKeyIdentifierClause.cs
- UnsignedPublishLicense.cs
- ContainerCodeDomSerializer.cs
- COSERVERINFO.cs
- DependencyPropertyValueSerializer.cs
- SiteMapHierarchicalDataSourceView.cs
- ApplyTemplatesAction.cs
- ComplexTypeEmitter.cs
- TemplateKeyConverter.cs
- BooleanKeyFrameCollection.cs
- PrintPreviewGraphics.cs
- GlyphRun.cs
- odbcmetadatafactory.cs
- MessageQueuePermissionEntryCollection.cs
- BasicExpressionVisitor.cs
- Filter.cs