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
- InstalledVoice.cs
- NamedPermissionSet.cs
- BuildProvider.cs
- SerialPinChanges.cs
- BitmapEffectDrawingContextWalker.cs
- SqlExpressionNullability.cs
- Shared.cs
- grammarelement.cs
- NameTable.cs
- DeclarativeCatalogPart.cs
- SymmetricSecurityProtocol.cs
- ServicePoint.cs
- IssuedTokenClientBehaviorsElement.cs
- UInt64.cs
- Configuration.cs
- HtmlInputRadioButton.cs
- HeaderedItemsControl.cs
- WindowsRichEdit.cs
- CollectionAdapters.cs
- PasswordBoxAutomationPeer.cs
- EntityDescriptor.cs
- Padding.cs
- CommandField.cs
- FixUp.cs
- DesignerValidatorAdapter.cs
- ComponentChangingEvent.cs
- DataGridViewBand.cs
- ErrorWebPart.cs
- HttpProfileBase.cs
- IisTraceWebEventProvider.cs
- ValidationSettings.cs
- TypeConverter.cs
- RegexParser.cs
- TextOptions.cs
- DrawingContextDrawingContextWalker.cs
- BuildProviderAppliesToAttribute.cs
- TimeZone.cs
- EventLogException.cs
- StandardTransformFactory.cs
- NavigateEvent.cs
- TdsParameterSetter.cs
- ListViewItemSelectionChangedEvent.cs
- ManagementClass.cs
- LeaseManager.cs
- CalloutQueueItem.cs
- RelationalExpressions.cs
- WebPartConnectionsConfigureVerb.cs
- DeclaredTypeValidator.cs
- Atom10FormatterFactory.cs
- Empty.cs
- XPathSelfQuery.cs
- CommonGetThemePartSize.cs
- _CommandStream.cs
- AtomServiceDocumentSerializer.cs
- NullableBoolConverter.cs
- InputLanguageProfileNotifySink.cs
- UnknownBitmapDecoder.cs
- DecoderNLS.cs
- TextPointer.cs
- odbcmetadatacolumnnames.cs
- EntityRecordInfo.cs
- SecurityDescriptor.cs
- PlanCompiler.cs
- CodeTypeDeclarationCollection.cs
- PathFigure.cs
- SmiConnection.cs
- ChangePassword.cs
- EntityDataSourceSelectedEventArgs.cs
- nulltextcontainer.cs
- Popup.cs
- ScriptResourceInfo.cs
- PhoneCall.cs
- ZipIORawDataFileBlock.cs
- XmlSignatureProperties.cs
- LineGeometry.cs
- FixedTextSelectionProcessor.cs
- JpegBitmapEncoder.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- WebMessageEncodingBindingElement.cs
- XmlSchemaDatatype.cs
- CopyOfAction.cs
- WebBrowserDesigner.cs
- BuildDependencySet.cs
- TransactionScope.cs
- FontStyles.cs
- NetStream.cs
- GeometryHitTestResult.cs
- DataPager.cs
- EntityDesignerBuildProvider.cs
- PrinterSettings.cs
- NullableConverter.cs
- WebHttpBehavior.cs
- EncryptedKey.cs
- DataColumnMappingCollection.cs
- RelationshipWrapper.cs
- Cursor.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- TileBrush.cs
- ColorBlend.cs
- XmlCharCheckingWriter.cs