Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- FontConverter.cs
- UserControlBuildProvider.cs
- FacetDescriptionElement.cs
- FontCacheLogic.cs
- EventlogProvider.cs
- DiscardableAttribute.cs
- PointAnimationBase.cs
- DebuggerAttributes.cs
- TextServicesManager.cs
- precedingsibling.cs
- SQLMoney.cs
- WebPartUserCapability.cs
- EntityDataSourceContextCreatingEventArgs.cs
- SizeF.cs
- ToolStripDesignerUtils.cs
- MembershipSection.cs
- Error.cs
- HtmlWindow.cs
- InstanceDataCollection.cs
- SqlBulkCopyColumnMapping.cs
- Table.cs
- DataGrid.cs
- StringOutput.cs
- SortQueryOperator.cs
- ZipIOFileItemStream.cs
- AutomationPatternInfo.cs
- MenuItemAutomationPeer.cs
- FormViewPagerRow.cs
- XmlTypeMapping.cs
- NavigationExpr.cs
- dataprotectionpermission.cs
- WorkItem.cs
- BevelBitmapEffect.cs
- DependencyObject.cs
- ModifyActivitiesPropertyDescriptor.cs
- StreamInfo.cs
- FixedSOMTableRow.cs
- PropertyChangedEventArgs.cs
- Converter.cs
- PageBreakRecord.cs
- TrackingMemoryStreamFactory.cs
- RangeValidator.cs
- CompositeFontInfo.cs
- SizeAnimation.cs
- DiscoveryDocumentReference.cs
- ManifestResourceInfo.cs
- XmlEntityReference.cs
- XmlSchemaInferenceException.cs
- GuidTagList.cs
- Model3DGroup.cs
- Thread.cs
- ProfilePropertyNameValidator.cs
- SmiContext.cs
- PropertyValueChangedEvent.cs
- ResourceContainer.cs
- XamlFrame.cs
- WebZone.cs
- HttpHandlerAction.cs
- SecurityToken.cs
- wmiprovider.cs
- ServiceMetadataPublishingElement.cs
- KeyboardNavigation.cs
- SQLRoleProvider.cs
- FloatMinMaxAggregationOperator.cs
- AuthenticatedStream.cs
- CheckPair.cs
- StringResourceManager.cs
- SmiEventSink.cs
- WebPartAddingEventArgs.cs
- PackageRelationship.cs
- TraceFilter.cs
- MessageQueue.cs
- SqlDataSourceQueryEditor.cs
- DefaultObjectMappingItemCollection.cs
- SafeNativeMethods.cs
- XamlClipboardData.cs
- CryptoKeySecurity.cs
- MarshalDirectiveException.cs
- WebExceptionStatus.cs
- NullableConverter.cs
- MarkupCompilePass1.cs
- RC2CryptoServiceProvider.cs
- Random.cs
- PolicyManager.cs
- ListViewDeleteEventArgs.cs
- PropertyIDSet.cs
- WorkflowDefinitionDispenser.cs
- FontFamilyIdentifier.cs
- XmlSchemaSimpleContent.cs
- TwoPhaseCommit.cs
- CodeDefaultValueExpression.cs
- ListViewAutomationPeer.cs
- UnsafeNativeMethods.cs
- LeafCellTreeNode.cs
- TransformProviderWrapper.cs
- ApplicationSettingsBase.cs
- COM2ExtendedUITypeEditor.cs
- Translator.cs
- TextModifier.cs
- xdrvalidator.cs