Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / MS / Internal / Automation / ExpandCollapseProviderWrapper.cs / 1 / ExpandCollapseProviderWrapper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Expand Collapse pattern provider wrapper for WCP
//
// History:
// 07/21/2003 : BrendanM Ported to WCP
//
//---------------------------------------------------------------------------
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 ExpandCollapseProviderWrapper: MarshalByRefObject, IExpandCollapseProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private ExpandCollapseProviderWrapper( AutomationPeer peer, IExpandCollapseProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IExpandCollapseProvider
//
//-----------------------------------------------------
#region Interface IExpandCollapseProvider
public void Expand()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Expand ), null );
}
public void Collapse()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Collapse ), null );
}
public ExpandCollapseState ExpandCollapseState
{
get
{
return (ExpandCollapseState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetExpandCollapseState ), null );
}
}
#endregion Interface IExpandCollapseProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new ExpandCollapseProviderWrapper( peer, (IExpandCollapseProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object Expand( object unused )
{
_iface.Expand();
return null;
}
private object Collapse( object unused )
{
_iface.Collapse();
return null;
}
private object GetExpandCollapseState( object unused )
{
return _iface.ExpandCollapseState;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IExpandCollapseProvider _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: Expand Collapse pattern provider wrapper for WCP
//
// History:
// 07/21/2003 : BrendanM Ported to WCP
//
//---------------------------------------------------------------------------
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 ExpandCollapseProviderWrapper: MarshalByRefObject, IExpandCollapseProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private ExpandCollapseProviderWrapper( AutomationPeer peer, IExpandCollapseProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IExpandCollapseProvider
//
//-----------------------------------------------------
#region Interface IExpandCollapseProvider
public void Expand()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Expand ), null );
}
public void Collapse()
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Collapse ), null );
}
public ExpandCollapseState ExpandCollapseState
{
get
{
return (ExpandCollapseState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetExpandCollapseState ), null );
}
}
#endregion Interface IExpandCollapseProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new ExpandCollapseProviderWrapper( peer, (IExpandCollapseProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object Expand( object unused )
{
_iface.Expand();
return null;
}
private object Collapse( object unused )
{
_iface.Collapse();
return null;
}
private object GetExpandCollapseState( object unused )
{
return _iface.ExpandCollapseState;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IExpandCollapseProvider _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
- Events.cs
- FrameworkPropertyMetadata.cs
- MetafileHeader.cs
- WizardPanelChangingEventArgs.cs
- AggregateNode.cs
- FileIOPermission.cs
- CFGGrammar.cs
- LongValidatorAttribute.cs
- RootBrowserWindowAutomationPeer.cs
- WindowsRegion.cs
- DataGridViewCellEventArgs.cs
- ObfuscateAssemblyAttribute.cs
- SafeCoTaskMem.cs
- TripleDESCryptoServiceProvider.cs
- FamilyMapCollection.cs
- MemoryMappedViewAccessor.cs
- Condition.cs
- NetworkInterface.cs
- StateDesigner.TransitionInfo.cs
- TransformValueSerializer.cs
- ComponentEditorPage.cs
- UrlAuthFailedErrorFormatter.cs
- DataBindingList.cs
- MeshGeometry3D.cs
- GPRECT.cs
- WebBrowserPermission.cs
- ZipIOExtraFieldZip64Element.cs
- Properties.cs
- CheckedPointers.cs
- IPHostEntry.cs
- HttpHeaderCollection.cs
- CompiledAction.cs
- LogExtentCollection.cs
- SqlError.cs
- RegionIterator.cs
- Renderer.cs
- SqlGenericUtil.cs
- PackageFilter.cs
- DataBindingList.cs
- hwndwrapper.cs
- FileDialogPermission.cs
- EncryptedKey.cs
- SmtpClient.cs
- XmlQueryTypeFactory.cs
- ToolboxItemFilterAttribute.cs
- WebPartHeaderCloseVerb.cs
- IndentedWriter.cs
- WebPartAddingEventArgs.cs
- CaseExpr.cs
- InternalCache.cs
- SQLChars.cs
- ImageList.cs
- DebugHandleTracker.cs
- HopperCache.cs
- BooleanFunctions.cs
- RuleProcessor.cs
- validationstate.cs
- bidPrivateBase.cs
- ClientUtils.cs
- Privilege.cs
- Point3DCollectionConverter.cs
- HTMLTextWriter.cs
- FieldAccessException.cs
- DataViewManager.cs
- ReversePositionQuery.cs
- Attachment.cs
- ReadOnlyActivityGlyph.cs
- ArcSegment.cs
- SoapElementAttribute.cs
- BinaryObjectReader.cs
- ColumnHeader.cs
- NamedElement.cs
- Int32AnimationBase.cs
- StatusBar.cs
- Localizer.cs
- PackWebRequestFactory.cs
- webeventbuffer.cs
- FamilyTypefaceCollection.cs
- ContentDisposition.cs
- WebPartConnectionsEventArgs.cs
- Attachment.cs
- SqlClientWrapperSmiStream.cs
- StretchValidation.cs
- Bidi.cs
- KeyboardNavigation.cs
- ItemCollection.cs
- LineSegment.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- RichTextBox.cs
- FormViewPageEventArgs.cs
- MenuBase.cs
- RectangleConverter.cs
- DateTimePicker.cs
- ErrorsHelper.cs
- TextMessageEncodingElement.cs
- GenericEnumConverter.cs
- XNodeNavigator.cs
- LoginName.cs
- WebScriptServiceHost.cs
- MatrixTransform3D.cs