Assembly: Microsoft.VisualStudio.TextManager.Interop (in microsoft.visualstudio.textmanager.interop.dll)
[InterfaceTypeAttribute(1)] [GuidAttribute("BB23A14B-7C61-469A-9890-A95648CED5E6")] public interface IVsTextView
/** @attribute InterfaceTypeAttribute(1) */ /** @attribute GuidAttribute("BB23A14B-7C61-469A-9890-A95648CED5E6") */ public interface IVsTextView
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.
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:
Use the interface.
Call themethod and use the PostMessage method to post messages to the main thread.
Some methods on IVsTextViewuse ViewCol coordinates (for example,and ), while others use CharIndex coordinates (for example, ). 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:
Then you must check to be sure that the following is true:
iCol < cCount
Then call the following:
// where SomeOtherMethod takes ViewCol coordinates
See illustrations of the implementation and/or calling of this interface in the sampleNotes to Callers Called by clients who want to manage their view. .