Partager via


IVsTextView Interface

Manages the text view of an editor window and contains methods to manage the text view. The view is essentially the editor window shown in the user interface (UI).

Namespace:  Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop (in Microsoft.VisualStudio.TextManager.Interop.dll)

Syntax

'Déclaration
<InterfaceTypeAttribute()> _
<GuidAttribute("BB23A14B-7C61-469A-9890-A95648CED5E6")> _
Public Interface IVsTextView
'Utilisation
Dim instance As IVsTextView
[InterfaceTypeAttribute()]
[GuidAttribute("BB23A14B-7C61-469A-9890-A95648CED5E6")]
public interface IVsTextView
[InterfaceTypeAttribute()]
[GuidAttribute(L"BB23A14B-7C61-469A-9890-A95648CED5E6")]
public interface class IVsTextView
[<InterfaceTypeAttribute()>]
[<GuidAttribute("BB23A14B-7C61-469A-9890-A95648CED5E6")>]
type IVsTextView =  interface end
public interface IVsTextView

Remarks

The IVsTextView interface is not the MDI child, but an individual window of text. If a splitter is involved, there can be multiple views in an MDI child. The term, caret, refers to the text insertion point, while the term, cursor, refers to the mouse pointer.

Avertissement

This interface is not thread-safe. You should not call anything on this interface from anything but the main UI thread.

If you need to perform any operations on the view from a different thread, you may either:

Some methods on IVsTextViewuse ViewCol coordinates (for example, GetTextStream and GetCaretPos), while others use CharIndex coordinates (for example, GetWordExtent). ViewCol coordinates may include virtual space while CharIndex coordinates are only an offset into a buffer line and never include virtual space.

If you get a coordinate in ViewCol coordinates, then you should only call methods that take CharIndex coordinates after making sure that the ViewCol coordinate does not lie in the virtual space region. For example, if you call the following:

long iLine;

long cCount;

ViewCol iCol;

IVsTextView::SomeMethod(&iLine, &icol);

Then you must check to be sure that the following is true:

IVsTextBuffer::GetLengthOfLine(iLine, &cCount);

iCol < cCount

Then call the following:

IVsTextView::SomeOtherMethod(ViewCol(iCol ))

// where SomeOtherMethod takes ViewCol coordinates

See illustrations of the implementation and/or calling of this interface in the sample Figures Language Service.

Notes to Callers

Called by clients who want to manage their view.

See Also

Reference

IVsTextView Members

Microsoft.VisualStudio.TextManager.Interop Namespace