Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / TextProviderWrapper.cs / 1305600 / TextProviderWrapper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Text pattern provider wrapper for WCP
//
// History:
// 03/09/2004 : a-davidj created.
//
//---------------------------------------------------------------------------
using System;
using System.Windows.Threading;
using System.Windows;
using System.Windows.Media;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using System.Windows.Automation.Text;
using System.Windows.Automation.Peers;
using SR = MS.Internal.PresentationCore.SR;
using SRID = MS.Internal.PresentationCore.SRID;
namespace MS.Internal.Automation
{
// see comment on InvokeProviderWrapper class for explanation of purpose and organization of these wrapper classes.
internal class TextProviderWrapper : MarshalByRefObject, ITextProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private TextProviderWrapper( AutomationPeer peer, ITextProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface ITextProvider
//
//-----------------------------------------------------
#region Interface ITextProvider
public ITextRangeProvider [] GetSelection()
{
return (ITextRangeProvider [])ElementUtil.Invoke(_peer, new DispatcherOperationCallback(GetSelection), null);
}
public ITextRangeProvider [] GetVisibleRanges()
{
return (ITextRangeProvider[])ElementUtil.Invoke(_peer, new DispatcherOperationCallback(GetVisibleRanges), null);
}
public ITextRangeProvider RangeFromChild(IRawElementProviderSimple childElement)
{
if (!(childElement is ElementProxy))
{
throw new ArgumentException(SR.Get(SRID.TextProvider_InvalidChild, "childElement"));
}
return (ITextRangeProvider)ElementUtil.Invoke(_peer, new DispatcherOperationCallback(RangeFromChild), childElement);
}
public ITextRangeProvider RangeFromPoint(Point screenLocation)
{
return (ITextRangeProvider)ElementUtil.Invoke(_peer, new DispatcherOperationCallback(RangeFromPoint), screenLocation);
}
public ITextRangeProvider DocumentRange
{
get
{
return (ITextRangeProvider)ElementUtil.Invoke(_peer, new DispatcherOperationCallback(GetDocumentRange), null);
}
}
public SupportedTextSelection SupportedTextSelection
{
get
{
return (SupportedTextSelection)ElementUtil.Invoke(_peer, new DispatcherOperationCallback(GetSupportedTextSelection), null);
}
}
#endregion Interface ITextProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new TextProviderWrapper( peer, (ITextProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object GetSelection(object unused)
{
return TextRangeProviderWrapper.WrapArgument( _iface.GetSelection(), _peer );
}
private object GetVisibleRanges(object unused)
{
return TextRangeProviderWrapper.WrapArgument( _iface.GetVisibleRanges(), _peer );
}
private object RangeFromChild(object arg)
{
IRawElementProviderSimple childElement = (IRawElementProviderSimple)arg;
return TextRangeProviderWrapper.WrapArgument( _iface.RangeFromChild(childElement), _peer );
}
private object RangeFromPoint(object arg)
{
Point screenLocation = (Point)arg;
return TextRangeProviderWrapper.WrapArgument( _iface.RangeFromPoint(screenLocation), _peer );
}
private object GetDocumentRange(object unused)
{
return TextRangeProviderWrapper.WrapArgument( _iface.DocumentRange, _peer );
}
private object GetSupportedTextSelection(object unused)
{
return _iface.SupportedTextSelection;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private ITextProvider _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: Text pattern provider wrapper for WCP
//
// History:
// 03/09/2004 : a-davidj created.
//
//---------------------------------------------------------------------------
using System;
using System.Windows.Threading;
using System.Windows;
using System.Windows.Media;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using System.Windows.Automation.Text;
using System.Windows.Automation.Peers;
using SR = MS.Internal.PresentationCore.SR;
using SRID = MS.Internal.PresentationCore.SRID;
namespace MS.Internal.Automation
{
// see comment on InvokeProviderWrapper class for explanation of purpose and organization of these wrapper classes.
internal class TextProviderWrapper : MarshalByRefObject, ITextProvider
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
private TextProviderWrapper( AutomationPeer peer, ITextProvider iface )
{
_peer = peer;
_iface = iface;
}
#endregion Constructors
//------------------------------------------------------
//
// Interface ITextProvider
//
//-----------------------------------------------------
#region Interface ITextProvider
public ITextRangeProvider [] GetSelection()
{
return (ITextRangeProvider [])ElementUtil.Invoke(_peer, new DispatcherOperationCallback(GetSelection), null);
}
public ITextRangeProvider [] GetVisibleRanges()
{
return (ITextRangeProvider[])ElementUtil.Invoke(_peer, new DispatcherOperationCallback(GetVisibleRanges), null);
}
public ITextRangeProvider RangeFromChild(IRawElementProviderSimple childElement)
{
if (!(childElement is ElementProxy))
{
throw new ArgumentException(SR.Get(SRID.TextProvider_InvalidChild, "childElement"));
}
return (ITextRangeProvider)ElementUtil.Invoke(_peer, new DispatcherOperationCallback(RangeFromChild), childElement);
}
public ITextRangeProvider RangeFromPoint(Point screenLocation)
{
return (ITextRangeProvider)ElementUtil.Invoke(_peer, new DispatcherOperationCallback(RangeFromPoint), screenLocation);
}
public ITextRangeProvider DocumentRange
{
get
{
return (ITextRangeProvider)ElementUtil.Invoke(_peer, new DispatcherOperationCallback(GetDocumentRange), null);
}
}
public SupportedTextSelection SupportedTextSelection
{
get
{
return (SupportedTextSelection)ElementUtil.Invoke(_peer, new DispatcherOperationCallback(GetSupportedTextSelection), null);
}
}
#endregion Interface ITextProvider
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
internal static object Wrap( AutomationPeer peer, object iface )
{
return new TextProviderWrapper( peer, (ITextProvider) iface );
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
private object GetSelection(object unused)
{
return TextRangeProviderWrapper.WrapArgument( _iface.GetSelection(), _peer );
}
private object GetVisibleRanges(object unused)
{
return TextRangeProviderWrapper.WrapArgument( _iface.GetVisibleRanges(), _peer );
}
private object RangeFromChild(object arg)
{
IRawElementProviderSimple childElement = (IRawElementProviderSimple)arg;
return TextRangeProviderWrapper.WrapArgument( _iface.RangeFromChild(childElement), _peer );
}
private object RangeFromPoint(object arg)
{
Point screenLocation = (Point)arg;
return TextRangeProviderWrapper.WrapArgument( _iface.RangeFromPoint(screenLocation), _peer );
}
private object GetDocumentRange(object unused)
{
return TextRangeProviderWrapper.WrapArgument( _iface.DocumentRange, _peer );
}
private object GetSupportedTextSelection(object unused)
{
return _iface.SupportedTextSelection;
}
#endregion Private Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private AutomationPeer _peer;
private ITextProvider _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
- CodeVariableDeclarationStatement.cs
- Debug.cs
- ApplicationProxyInternal.cs
- NameValueCollection.cs
- LinkedResourceCollection.cs
- CodeDomSerializationProvider.cs
- SqlFunctionAttribute.cs
- SendActivityEventArgs.cs
- IdentityValidationException.cs
- Native.cs
- BuildProviderAppliesToAttribute.cs
- DataBindEngine.cs
- FormsAuthenticationUser.cs
- XPathQueryGenerator.cs
- BCLDebug.cs
- LogPolicy.cs
- MultipartIdentifier.cs
- MappingException.cs
- _StreamFramer.cs
- WebPartConnectionsConfigureVerb.cs
- Component.cs
- cookiecontainer.cs
- safelinkcollection.cs
- FormViewInsertEventArgs.cs
- CustomBinding.cs
- KeyProperty.cs
- OdbcCommand.cs
- UrlPath.cs
- X509SubjectKeyIdentifierClause.cs
- mansign.cs
- JournalEntryListConverter.cs
- DropShadowEffect.cs
- SystemIcmpV6Statistics.cs
- WebBrowserUriTypeConverter.cs
- SafeEventLogWriteHandle.cs
- Int32Rect.cs
- ThreadTrace.cs
- SoapWriter.cs
- CancelAsyncOperationRequest.cs
- CheckBoxPopupAdapter.cs
- SignatureResourceHelper.cs
- DecimalAnimation.cs
- ProtectedConfigurationSection.cs
- PieceDirectory.cs
- SQLDecimalStorage.cs
- DataControlCommands.cs
- WebPartCloseVerb.cs
- _UncName.cs
- XXXOnTypeBuilderInstantiation.cs
- HMACMD5.cs
- cookie.cs
- FontStyles.cs
- XmlValidatingReader.cs
- ControlBindingsCollection.cs
- GeneralTransform.cs
- Matrix3D.cs
- XmlILStorageConverter.cs
- PassportAuthenticationModule.cs
- OverflowException.cs
- EmptyQuery.cs
- CodeCommentStatementCollection.cs
- ColumnReorderedEventArgs.cs
- XPathScanner.cs
- Odbc32.cs
- UriTemplateCompoundPathSegment.cs
- TextProperties.cs
- FontUnit.cs
- QilGenerator.cs
- EmptyCollection.cs
- SQLString.cs
- CompositeDuplexBindingElement.cs
- DiagnosticSection.cs
- BidOverLoads.cs
- CurrencyManager.cs
- GroupItem.cs
- _SSPIWrapper.cs
- ProjectionPruner.cs
- HttpValueCollection.cs
- Opcode.cs
- ContextStaticAttribute.cs
- TableItemProviderWrapper.cs
- SoapProtocolReflector.cs
- InertiaTranslationBehavior.cs
- DelayedRegex.cs
- SerializationHelper.cs
- MessageQueueCriteria.cs
- XPathDocumentIterator.cs
- HttpProfileGroupBase.cs
- SmiMetaData.cs
- JapaneseLunisolarCalendar.cs
- EditableLabelControl.cs
- MobileTextWriter.cs
- KeyPullup.cs
- StringFormat.cs
- XamlInterfaces.cs
- ItemList.cs
- ScrollViewer.cs
- DataGridAddNewRow.cs
- ScriptComponentDescriptor.cs
- ObjectListFieldsPage.cs