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
- StylusButtonCollection.cs
- StrictAndMessageFilter.cs
- SmiMetaDataProperty.cs
- NonSerializedAttribute.cs
- RoleService.cs
- Accessors.cs
- Condition.cs
- StyleHelper.cs
- Maps.cs
- ClientOptions.cs
- Win32SafeHandles.cs
- EnumValidator.cs
- CodeTypeDeclarationCollection.cs
- BamlMapTable.cs
- LinqToSqlWrapper.cs
- SR.cs
- HtmlInputCheckBox.cs
- SuppressIldasmAttribute.cs
- UnknownBitmapDecoder.cs
- MenuItem.cs
- ClientConvert.cs
- RegexBoyerMoore.cs
- DataGridCell.cs
- LicFileLicenseProvider.cs
- HighlightVisual.cs
- BackStopAuthenticationModule.cs
- SimpleNameService.cs
- SoapSchemaImporter.cs
- SqlMetaData.cs
- RegexCode.cs
- ToolboxItemCollection.cs
- UnconditionalPolicy.cs
- ListItemsPage.cs
- TypeListConverter.cs
- NumberFormatInfo.cs
- RowVisual.cs
- PipeStream.cs
- followingquery.cs
- SafeNativeMethods.cs
- ThreadInterruptedException.cs
- InertiaRotationBehavior.cs
- SqlNotificationRequest.cs
- SimpleTypeResolver.cs
- RuleProcessor.cs
- NetworkInformationException.cs
- PointAnimationClockResource.cs
- DataColumnMappingCollection.cs
- FunctionImportElement.cs
- columnmapkeybuilder.cs
- TagMapInfo.cs
- DynamicDataManager.cs
- EndEvent.cs
- LingerOption.cs
- OdbcException.cs
- SemanticResolver.cs
- TargetInvocationException.cs
- Visual.cs
- VirtualPathData.cs
- ChangeTracker.cs
- CustomAttributeBuilder.cs
- FieldMetadata.cs
- TypeDescriptionProviderAttribute.cs
- uribuilder.cs
- _Connection.cs
- AtlasWeb.Designer.cs
- WebSysDescriptionAttribute.cs
- StopStoryboard.cs
- ParseElementCollection.cs
- MILUtilities.cs
- SqlFunctions.cs
- XmlIlGenerator.cs
- CompilerScopeManager.cs
- EntityDataSourceContextDisposingEventArgs.cs
- TableSectionStyle.cs
- ContentElement.cs
- SetterBase.cs
- SmiContext.cs
- WindowsSolidBrush.cs
- GlobalProxySelection.cs
- SimpleTypeResolver.cs
- PlaceHolder.cs
- CollectionBuilder.cs
- SkewTransform.cs
- XmlWellformedWriter.cs
- HyperLink.cs
- PingOptions.cs
- TracePayload.cs
- SizeFConverter.cs
- Variant.cs
- PaperSize.cs
- WebBrowsableAttribute.cs
- PageVisual.cs
- SharedUtils.cs
- Int16KeyFrameCollection.cs
- SdlChannelSink.cs
- NamespaceDisplay.xaml.cs
- ComplexLine.cs
- MaskedTextBoxTextEditorDropDown.cs
- PropertyEntry.cs
- BufferedReceiveElement.cs