Partilhar via


Método IVsTextLines.GetMarkerData

Retorna os dados de marcador de texto para o intervalo da linha especificada dentro do buffer de texto.

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

Sintaxe

'Declaração
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

Parâmetros

  • iTopLine
    Tipo: Int32

    [in] Linha superior dos dados do marcador.

  • iBottomLine
    Tipo: Int32

    [in] Linha de base de dados os marcador.

Valor de retorno

Tipo: Int32
Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.

Comentários

COM assinatura

De textmgr.idl:

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

Use esse método com GetLineData para determinar os dados do marcador para um dado intervalo no buffer de texto. Depois de chamar IVsTextLines.GetMarkerData, em seguida, você precisará chamar ReleaseMarkerData para permitir que o buffer de texto limpar o MARKERDATA estrutura.

GetMarkerData em código gerenciado

GetMarkerDatapode causar problemas no código gerenciado. O GetMarkerData implementação que você não Release a pLayer membro. Assim, ele não realiza uma AddRef na interface. Não há nenhum problema em C++ nativo, contanto que você não chamar Release em código gerenciado, você não pode controlar quando um lançamento é feito. Para sua segurança, você deve fazer uma AddRef sobre o pLayer membro após GetMarkerData preenche a estrutura de dados. A maneira mais simples para fazer isso é com 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);

Segurança do .NET Framework

Consulte também

Referência

IVsTextLines Interface

Namespace Microsoft.VisualStudio.TextManager.Interop