Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SessionStateContainer.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- MenuItem.cs
- DataObjectSettingDataEventArgs.cs
- DebuggerAttributes.cs
- OutputCacheSettings.cs
- MatrixValueSerializer.cs
- CounterCreationDataCollection.cs
- TdsValueSetter.cs
- PropertyDescriptorGridEntry.cs
- CodeConditionStatement.cs
- SrgsGrammar.cs
- SqlConnectionHelper.cs
- EventRoute.cs
- NativeMethods.cs
- SmiContextFactory.cs
- BasicExpressionVisitor.cs
- AddressAlreadyInUseException.cs
- ObjectCloneHelper.cs
- OneWayElement.cs
- CodeGeneratorAttribute.cs
- IfJoinedCondition.cs
- MsmqChannelListenerBase.cs
- CompilerInfo.cs
- ChtmlLinkAdapter.cs
- CacheRequest.cs
- AxisAngleRotation3D.cs
- Cursor.cs
- DelegatingMessage.cs
- ClickablePoint.cs
- SqlServices.cs
- StateDesigner.LayoutSelectionGlyph.cs
- DesigntimeLicenseContextSerializer.cs
- StrokeNodeOperations2.cs
- StatusBarItemAutomationPeer.cs
- DelimitedListTraceListener.cs
- ToolboxItemFilterAttribute.cs
- ProcessHostServerConfig.cs
- EventQueueState.cs
- HtmlContainerControl.cs
- CreateRefExpr.cs
- DataDocumentXPathNavigator.cs
- EditorResources.cs
- StylusPoint.cs
- HtmlGenericControl.cs
- codemethodreferenceexpression.cs
- FormatControl.cs
- LinearGradientBrush.cs
- LayoutTableCell.cs
- ObfuscateAssemblyAttribute.cs
- SchemaCollectionPreprocessor.cs
- RoleManagerSection.cs
- Memoizer.cs
- RemoteWebConfigurationHost.cs
- OutputBuffer.cs
- ScrollChrome.cs
- StoragePropertyMapping.cs
- TextEndOfLine.cs
- HMACSHA384.cs
- PrintPageEvent.cs
- BitmapEffectGroup.cs
- ApplicationFileCodeDomTreeGenerator.cs
- GlobalDataBindingHandler.cs
- WindowsIdentity.cs
- CryptoApi.cs
- QuaternionAnimationBase.cs
- ActionFrame.cs
- SecurityElement.cs
- QilName.cs
- Compilation.cs
- BitmapSizeOptions.cs
- WindowsIdentity.cs
- SqlConnectionString.cs
- WorkflowTransactionService.cs
- CacheDependency.cs
- OracleDateTime.cs
- HierarchicalDataSourceDesigner.cs
- GifBitmapEncoder.cs
- WorkflowServiceHost.cs
- EntityDataSourceSelectedEventArgs.cs
- Util.cs
- AttributeCollection.cs
- SplitterCancelEvent.cs
- ServicesUtilities.cs
- DataProtection.cs
- TextPatternIdentifiers.cs
- DataSet.cs
- RoutingTable.cs
- WindowProviderWrapper.cs
- DeviceContext.cs
- SubstitutionList.cs
- EncodingFallbackAwareXmlTextWriter.cs
- BinaryNode.cs
- TreeIterators.cs
- ContentValidator.cs
- TableLayout.cs
- XmlSchemaDocumentation.cs
- MultiView.cs
- RenderContext.cs
- shaperfactoryquerycacheentry.cs