Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / MS / Internal / Automation / DockProviderWrapper.cs / 1 / DockProviderWrapper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Dock 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 DockProviderWrapper: MarshalByRefObject, IDockProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private DockProviderWrapper( AutomationPeer peer, IDockProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IDockProvider
//
//-----------------------------------------------------
#region Interface IDockProvider
public void SetDockPosition(DockPosition dockPosition)
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetDockPosition ), dockPosition );
}
public DockPosition DockPosition
{
get
{
return (DockPosition)ElementUtil.Invoke(_peer, new DispatcherOperationCallback( GetDockPosition ), null);
}
}
#endregion Interface IDockProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new DockProviderWrapper( peer, (IDockProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object SetDockPosition( object arg )
{
_iface.SetDockPosition( (DockPosition) arg );
return null;
}
private object GetDockPosition( object unused )
{
return _iface.DockPosition;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IDockProvider _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: Dock 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 DockProviderWrapper: MarshalByRefObject, IDockProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private DockProviderWrapper( AutomationPeer peer, IDockProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface IDockProvider
//
//-----------------------------------------------------
#region Interface IDockProvider
public void SetDockPosition(DockPosition dockPosition)
{
ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetDockPosition ), dockPosition );
}
public DockPosition DockPosition
{
get
{
return (DockPosition)ElementUtil.Invoke(_peer, new DispatcherOperationCallback( GetDockPosition ), null);
}
}
#endregion Interface IDockProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new DockProviderWrapper( peer, (IDockProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object SetDockPosition( object arg )
{
_iface.SetDockPosition( (DockPosition) arg );
return null;
}
private object GetDockPosition( object unused )
{
return _iface.DockPosition;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private IDockProvider _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
- ObjectFactoryCodeDomTreeGenerator.cs
- PasswordBox.cs
- PathFigureCollection.cs
- SafeArrayTypeMismatchException.cs
- FileDataSourceCache.cs
- BindingOperations.cs
- EqualityComparer.cs
- XmlProcessingInstruction.cs
- SqlResolver.cs
- StructureChangedEventArgs.cs
- CryptographicAttribute.cs
- RequestQueryParser.cs
- RIPEMD160Managed.cs
- ProxyWebPart.cs
- UIElementCollection.cs
- UnsafeNativeMethods.cs
- ClientScriptManager.cs
- SimpleMailWebEventProvider.cs
- SecurityCriticalDataForSet.cs
- MatrixUtil.cs
- AutomationPropertyInfo.cs
- ExpressionNode.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- _ConnectionGroup.cs
- XmlSortKey.cs
- InputChannelAcceptor.cs
- DataGridTable.cs
- CodeComment.cs
- TriggerActionCollection.cs
- ApplicationActivator.cs
- SystemInfo.cs
- ToolboxItemAttribute.cs
- ReverseInheritProperty.cs
- SessionPageStateSection.cs
- XmlUtilWriter.cs
- EventSourceCreationData.cs
- NativeBuffer.cs
- DataGridViewRowsRemovedEventArgs.cs
- ListControl.cs
- SqlResolver.cs
- Vector3DCollectionConverter.cs
- TransformerConfigurationWizardBase.cs
- DesignConnectionCollection.cs
- IPAddress.cs
- Control.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- datacache.cs
- Metafile.cs
- AppSettingsReader.cs
- GridViewEditEventArgs.cs
- DesignerDeviceConfig.cs
- ListControlBuilder.cs
- CheckedListBox.cs
- SystemIcmpV6Statistics.cs
- DownloadProgressEventArgs.cs
- SignatureConfirmationElement.cs
- TextWriter.cs
- ConvertersCollection.cs
- ConnectionPoint.cs
- ThrowHelper.cs
- FrugalList.cs
- SimpleBitVector32.cs
- Config.cs
- NativeMethods.cs
- SqlCachedBuffer.cs
- DataGrid.cs
- ServiceOperationWrapper.cs
- CrossSiteScriptingValidation.cs
- TextProperties.cs
- UInt16Converter.cs
- FtpRequestCacheValidator.cs
- ObjectTag.cs
- xamlnodes.cs
- GuidConverter.cs
- NetTcpSecurityElement.cs
- Internal.cs
- StylusPoint.cs
- SynchronizedInputPattern.cs
- BindingWorker.cs
- ComplexPropertyEntry.cs
- WinFormsComponentEditor.cs
- SQLDateTimeStorage.cs
- ConnectionStringsExpressionBuilder.cs
- WebPartZoneBase.cs
- IsolatedStoragePermission.cs
- UnicodeEncoding.cs
- MemoryRecordBuffer.cs
- ActivityTypeDesigner.xaml.cs
- DCSafeHandle.cs
- TemplateBamlTreeBuilder.cs
- FormParameter.cs
- CharConverter.cs
- DictationGrammar.cs
- ColumnPropertiesGroup.cs
- BitmapEffectInputConnector.cs
- TransactionFlowElement.cs
- ScrollItemPattern.cs
- Vector3DCollection.cs
- BamlLocalizer.cs
- BaseInfoTable.cs