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
- Win32KeyboardDevice.cs
- BmpBitmapEncoder.cs
- TransformedBitmap.cs
- XamlSerializerUtil.cs
- XamlContextStack.cs
- SectionUpdates.cs
- InProcStateClientManager.cs
- AutoGeneratedFieldProperties.cs
- WmpBitmapEncoder.cs
- XmlNamespaceManager.cs
- HtmlForm.cs
- DesignerVerbCollection.cs
- NamedObject.cs
- Privilege.cs
- InputScopeAttribute.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- PrivilegedConfigurationManager.cs
- SQLMoney.cs
- DependencyProperty.cs
- CultureNotFoundException.cs
- DragEvent.cs
- ResXBuildProvider.cs
- UniqueEventHelper.cs
- RouteItem.cs
- ConfigurationStrings.cs
- ByteConverter.cs
- CatalogUtil.cs
- SoapRpcMethodAttribute.cs
- DataControlFieldCollection.cs
- PolicyAssertionCollection.cs
- SqlTypesSchemaImporter.cs
- DisplayMemberTemplateSelector.cs
- ResourceReader.cs
- NavigationExpr.cs
- ParameterBuilder.cs
- ValidationSummary.cs
- AxHost.cs
- DataRelation.cs
- MetadataArtifactLoaderComposite.cs
- SerializationFieldInfo.cs
- ForwardPositionQuery.cs
- PatternMatchRules.cs
- PackagePartCollection.cs
- NamespaceQuery.cs
- TriggerCollection.cs
- Cloud.cs
- DependencyObjectType.cs
- BufferedStream2.cs
- GreaterThan.cs
- SystemTcpStatistics.cs
- OdbcConnectionHandle.cs
- DataBinder.cs
- LogRestartAreaEnumerator.cs
- CookielessHelper.cs
- SqlAggregateChecker.cs
- Line.cs
- DataExpression.cs
- sqlcontext.cs
- JsonQueryStringConverter.cs
- KnownColorTable.cs
- Module.cs
- RemoteHelper.cs
- SlipBehavior.cs
- IdentityManager.cs
- XmlWriterTraceListener.cs
- WebResourceUtil.cs
- PopupRoot.cs
- basenumberconverter.cs
- GeometryHitTestParameters.cs
- TemplateBamlTreeBuilder.cs
- ContextMenuService.cs
- FormsAuthenticationModule.cs
- TemplateControlParser.cs
- HttpCacheParams.cs
- FileVersionInfo.cs
- DocumentSchemaValidator.cs
- EffectiveValueEntry.cs
- GetReadStreamResult.cs
- PasswordRecoveryAutoFormat.cs
- EasingFunctionBase.cs
- CodeIdentifier.cs
- FieldBuilder.cs
- MemberProjectionIndex.cs
- Site.cs
- CrossSiteScriptingValidation.cs
- NumericUpDownAccelerationCollection.cs
- DoubleLinkList.cs
- CopyNodeSetAction.cs
- CodeIndexerExpression.cs
- VisualBasicDesignerHelper.cs
- XmlSchemaComplexContentExtension.cs
- CultureSpecificStringDictionary.cs
- FirstMatchCodeGroup.cs
- OverflowException.cs
- localization.cs
- SqlConnection.cs
- columnmapfactory.cs
- TypeHelpers.cs
- ParserContext.cs
- BooleanAnimationUsingKeyFrames.cs