Поделиться через


IVsTextLines.GetMarkerData - метод

Возвращает сведения о текстовой метки для указанного диапазона линии в текстовый буфер.

Пространство имен:  Microsoft.VisualStudio.TextManager.Interop
Сборка:  Microsoft.VisualStudio.TextManager.Interop (в Microsoft.VisualStudio.TextManager.Interop.dll)

Синтаксис

'Декларация
Function GetMarkerData ( _
    iTopLine As Integer, _
    iBottomLine As Integer, _
    <OutAttribute> pMarkerData As MARKERDATA() _
) As Integer
int GetMarkerData(
    int iTopLine,
    int iBottomLine,
    MARKERDATA[] pMarkerData
)
int GetMarkerData(
    [InAttribute] int iTopLine, 
    [InAttribute] int iBottomLine, 
    [OutAttribute] array<MARKERDATA>^ pMarkerData
)
abstract GetMarkerData : 
        iTopLine:int * 
        iBottomLine:int * 
        pMarkerData:MARKERDATA[] byref -> int
function GetMarkerData(
    iTopLine : int, 
    iBottomLine : int, 
    pMarkerData : MARKERDATA[]
) : int

Параметры

  • iTopLine
    Тип: Int32

    [in] top линия данных метки.

  • iBottomLine
    Тип: Int32

    [in] нижняя линия, суть дела данных метки.

Возвращаемое значение

Тип: Int32
Если метод завершается успешно, возвращается S_OK.Если происходит сбой, возвращается код ошибки.

Заметки

Модель COM подписи

Из textmgr.idl:

HRESULT IVsTextLines::GetMarkerData(
   [in] long iTopLine,
   [in] long iBottomLine,
   [out] MARKERDATA *pMarkerData
);

Этот метод используется с GetLineData определить данные метки для заданного диапазона в текстовом буфере. После вызова ReleaseMarkerData затем необходимо вызвать, MARKERDATA включение текстовый буфер для очистки IVsTextLines.GetMarkerDataструктура.

GetMarkerData в управляемом коде

GetMarkerData может вызвать проблемы в управляемом коде. GetMarkerData реализация, которая не используется ReleasepLayer элемент. Таким образом, он не выполняет AddRef в интерфейсе. Это не создает проблем в собственном C++, пока не вызывайте Release В управляемом коде можно контролировать, если выпуск не выполняется. Чтобы быть безопасно, необходимо сделать GetMarkerData на AddRef элемент после pLayer заполняет структуру данных. Проще всего это сделать с GetIUnknownForObject.

[C#]

MARKERDATA[] markerData = new MARKERDATA[1];
markerData[0] = new Microsoft.VisualStudio.TextManager.Interop.MARKERDATA();
buffer.GetMarkerData(line, line, markerData);
IntPtr dummyAddRef = Marshal.GetIUnknownForObject(markerData[0].pLayer);

Безопасность платформы .NET Framework

См. также

Ссылки

IVsTextLines Интерфейс

Microsoft.VisualStudio.TextManager.Interop - пространство имен