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
- OrderedParallelQuery.cs
- APCustomTypeDescriptor.cs
- BaseTemplateParser.cs
- SoapIncludeAttribute.cs
- SequentialUshortCollection.cs
- AssociationTypeEmitter.cs
- FindCriteriaCD1.cs
- ProtocolElementCollection.cs
- ModuleBuilder.cs
- DelegateSerializationHolder.cs
- CacheDependency.cs
- AuthorizationRuleCollection.cs
- DocumentXmlWriter.cs
- HttpProfileBase.cs
- XmlChildEnumerator.cs
- SharedPerformanceCounter.cs
- FunctionGenerator.cs
- TextMetrics.cs
- cookiecollection.cs
- SecurityContextSecurityToken.cs
- WebServiceResponseDesigner.cs
- SpStreamWrapper.cs
- SponsorHelper.cs
- InplaceBitmapMetadataWriter.cs
- ReadOnlyNameValueCollection.cs
- FlowLayoutPanel.cs
- NoPersistHandle.cs
- BamlRecordHelper.cs
- EmptyStringExpandableObjectConverter.cs
- RadioButton.cs
- PersonalizationAdministration.cs
- ListBoxItemAutomationPeer.cs
- BreakRecordTable.cs
- HealthMonitoringSection.cs
- GridErrorDlg.cs
- XAMLParseException.cs
- diagnosticsswitches.cs
- ThumbAutomationPeer.cs
- PreservationFileReader.cs
- CmsUtils.cs
- CalculatedColumn.cs
- ApplicationFileCodeDomTreeGenerator.cs
- SqlNotificationEventArgs.cs
- SessionEndingEventArgs.cs
- XamlClipboardData.cs
- ColorConvertedBitmap.cs
- ObjectDataSourceDisposingEventArgs.cs
- StringComparer.cs
- TextUtf8RawTextWriter.cs
- Function.cs
- CachedTypeface.cs
- XsltSettings.cs
- CodeEventReferenceExpression.cs
- MenuStrip.cs
- CodeExpressionCollection.cs
- ObjectDataSourceView.cs
- TreeViewEvent.cs
- DataControlExtensions.cs
- SimpleBitVector32.cs
- SqlCachedBuffer.cs
- TextTreeRootNode.cs
- CheckedListBox.cs
- AssemblyNameProxy.cs
- WindowAutomationPeer.cs
- XmlSchemaAnnotation.cs
- StringResourceManager.cs
- XPathAncestorQuery.cs
- sqlstateclientmanager.cs
- EdgeProfileValidation.cs
- PersistenceTypeAttribute.cs
- Color.cs
- SafeEventLogWriteHandle.cs
- SamlDelegatingWriter.cs
- StylusDownEventArgs.cs
- ListParagraph.cs
- AssertFilter.cs
- GlyphRunDrawing.cs
- TrackingDataItemValue.cs
- EventArgs.cs
- DataGridViewRowPrePaintEventArgs.cs
- DataDocumentXPathNavigator.cs
- MasterPageBuildProvider.cs
- FileDialogCustomPlaces.cs
- Pair.cs
- ConfigXmlSignificantWhitespace.cs
- HelpProvider.cs
- EventLogEntry.cs
- SiteMapPathDesigner.cs
- VariableExpressionConverter.cs
- HWStack.cs
- ScriptRegistrationManager.cs
- MailBnfHelper.cs
- MergeLocalizationDirectives.cs
- KeyboardDevice.cs
- XmlDataContract.cs
- Publisher.cs
- _UriTypeConverter.cs
- CommandDevice.cs
- WebServiceAttribute.cs
- DiscoveryReferences.cs