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
- DbConnectionClosed.cs
- ArglessEventHandlerProxy.cs
- Journaling.cs
- TextSchema.cs
- SHA1Managed.cs
- ControlCachePolicy.cs
- EventArgs.cs
- Rectangle.cs
- OdbcEnvironment.cs
- StorageFunctionMapping.cs
- GetReadStreamResult.cs
- X509CertificateClaimSet.cs
- TextEncodedRawTextWriter.cs
- HGlobalSafeHandle.cs
- FontWeights.cs
- PrimitiveSchema.cs
- HasCopySemanticsAttribute.cs
- CodeEntryPointMethod.cs
- Image.cs
- RegexCaptureCollection.cs
- CallbackValidatorAttribute.cs
- localization.cs
- ProxyAttribute.cs
- TraceUtils.cs
- DateTimeStorage.cs
- SiteMapDataSource.cs
- ScriptingWebServicesSectionGroup.cs
- MyContact.cs
- MonitorWrapper.cs
- Command.cs
- Timeline.cs
- XmlResolver.cs
- DesignerSerializationVisibilityAttribute.cs
- BitmapCacheBrush.cs
- CodeTypeReferenceCollection.cs
- SecurityContext.cs
- XPathNodeInfoAtom.cs
- CodeTypeDeclarationCollection.cs
- DataRelationPropertyDescriptor.cs
- PluralizationService.cs
- ModelPropertyCollectionImpl.cs
- SessionViewState.cs
- GeometryCollection.cs
- ComponentConverter.cs
- AppDomainShutdownMonitor.cs
- NavigationFailedEventArgs.cs
- ObservableDictionary.cs
- FieldToken.cs
- mediaeventargs.cs
- GridViewUpdateEventArgs.cs
- FlowLayoutPanel.cs
- DataGridCell.cs
- SemanticAnalyzer.cs
- ConfigurationSectionCollection.cs
- SubclassTypeValidator.cs
- SmtpLoginAuthenticationModule.cs
- EnumerableRowCollectionExtensions.cs
- XhtmlBasicImageAdapter.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- SecurityResources.cs
- BackgroundFormatInfo.cs
- TTSVoice.cs
- UriWriter.cs
- TagPrefixAttribute.cs
- WebBrowserUriTypeConverter.cs
- ConnectionManagementElement.cs
- EventData.cs
- CngProvider.cs
- SpStreamWrapper.cs
- OwnerDrawPropertyBag.cs
- DataGrid.cs
- WebPartsSection.cs
- ContentPlaceHolder.cs
- CompilerGeneratedAttribute.cs
- AudioStateChangedEventArgs.cs
- Command.cs
- ParserHooks.cs
- brushes.cs
- MdImport.cs
- VirtualDirectoryMappingCollection.cs
- Accessors.cs
- DefaultMemberAttribute.cs
- ResourceContainer.cs
- ChangeConflicts.cs
- CookieProtection.cs
- RandomNumberGenerator.cs
- SharedPerformanceCounter.cs
- PersonalizableAttribute.cs
- UndoManager.cs
- CharacterBufferReference.cs
- Version.cs
- QueryValue.cs
- DataGridViewSortCompareEventArgs.cs
- BlockExpression.cs
- PartialList.cs
- Rect.cs
- StringHandle.cs
- WebZone.cs
- AsnEncodedData.cs
- PathFigureCollectionConverter.cs