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
- ClientSponsor.cs
- TableDetailsRow.cs
- SortedSet.cs
- UidManager.cs
- ComponentEvent.cs
- RequestTimeoutManager.cs
- EmissiveMaterial.cs
- TailCallAnalyzer.cs
- VarRemapper.cs
- AutomationPatternInfo.cs
- HwndKeyboardInputProvider.cs
- BufferBuilder.cs
- odbcmetadatafactory.cs
- TouchFrameEventArgs.cs
- PkcsUtils.cs
- ListControl.cs
- PopupControlService.cs
- EpmCustomContentSerializer.cs
- InheritanceContextHelper.cs
- WebBrowserHelper.cs
- WebPartEditVerb.cs
- IconBitmapDecoder.cs
- ResumeStoryboard.cs
- DataObject.cs
- ProtocolReflector.cs
- DuplicateDetector.cs
- ValidationError.cs
- SqlClientMetaDataCollectionNames.cs
- ScalarType.cs
- Geometry.cs
- dtdvalidator.cs
- Int16AnimationUsingKeyFrames.cs
- XmlNode.cs
- OneToOneMappingSerializer.cs
- SelectionRangeConverter.cs
- DependencyPropertyChangedEventArgs.cs
- HostedHttpTransportManager.cs
- InstanceKeyCollisionException.cs
- TypeDelegator.cs
- RadialGradientBrush.cs
- TdsParameterSetter.cs
- SqlCaseSimplifier.cs
- StrokeCollection2.cs
- RoutedEventValueSerializer.cs
- DBAsyncResult.cs
- Setter.cs
- IgnoreSectionHandler.cs
- ContentType.cs
- TypeListConverter.cs
- RootBrowserWindowAutomationPeer.cs
- TextEffect.cs
- StateMachineDesignerPaint.cs
- BitVec.cs
- HashCryptoHandle.cs
- WinInetCache.cs
- NamespaceEmitter.cs
- DbBuffer.cs
- PropertyEmitterBase.cs
- ArithmeticLiteral.cs
- ChildrenQuery.cs
- DirectionalLight.cs
- Pool.cs
- BitmapInitialize.cs
- AdornerHitTestResult.cs
- CodeTryCatchFinallyStatement.cs
- ResourceSet.cs
- Application.cs
- SqlCacheDependencyDatabaseCollection.cs
- BlockUIContainer.cs
- DataSysAttribute.cs
- HttpWebResponse.cs
- MetadataArtifactLoaderCompositeFile.cs
- ParserExtension.cs
- WebReferencesBuildProvider.cs
- EntityDataSourceView.cs
- Wizard.cs
- nulltextcontainer.cs
- PopupEventArgs.cs
- EndOfStreamException.cs
- NavigationPropertyEmitter.cs
- ResXBuildProvider.cs
- BStrWrapper.cs
- SetUserLanguageRequest.cs
- XmlRawWriterWrapper.cs
- ManualResetEvent.cs
- ConfigurationErrorsException.cs
- BaseDataBoundControl.cs
- Normalization.cs
- CacheVirtualItemsEvent.cs
- UInt32Converter.cs
- AsyncOperationContext.cs
- AsymmetricAlgorithm.cs
- DataBinder.cs
- ListItemViewControl.cs
- CatalogZone.cs
- ThemeableAttribute.cs
- ForwardPositionQuery.cs
- ComplexObject.cs
- XmlSchemaComplexContentExtension.cs
- Int32Rect.cs