Freigeben über


IVsTextLines.GetMarkerData-Methode

Gibt Textmarkierungs Testdaten für den angegebenen Bereich von Zeilen innerhalb des Textpuffers zurück.

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

Syntax

'Declaration
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

Parameter

  • iTopLine
    Typ: Int32

    [in] Oberste Zeile der Markierung von Daten.

  • iBottomLine
    Typ: Int32

    [in] Endergebnis der Markierung von Daten.

Rückgabewert

Typ: Int32
Wenn die Methode erfolgreich ausgeführt, gibt sie S_OKzurück.Bei einem Fehler wird ein Fehlercode zurückgegeben.

Hinweise

COM-Signatur

Von textmgr.idl:

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

Verwenden Sie diese Methode mit GetLineData , um die Markierung von Daten für einen angegebenen Bereich im Textpuffer zu bestimmen. Nachdem Sie IVsTextLines.GetMarkerDataaufrufen, müssen Sie ReleaseMarkerData aufrufen, um den Textpuffer zu ermöglichen, die MARKERDATA Struktur zu bereinigen.

GetMarkerData in verwaltetem Code

GetMarkerData kann Probleme verursachen in verwaltetem Code. Die Implementierung der GetMarkerData , die nicht Release der pLayer-Member erfolgen. Daher führt dies nicht AddRef für die Schnittstelle aus. Es gibt kein Problem in systemeigenem C++, solange Sie nicht Release in verwaltetem Code aufrufen, den Sie nicht steuern können, wann eine Veröffentlichung ausgeführt wird. Um sicherzustellen, sollten Sie AddRef auf dem pLayer-Member führen nachdem GetMarkerData die Datenstruktur ausfüllt. Am einfachsten können Sie hierzu mit 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-Sicherheit

Siehe auch

Referenz

IVsTextLines Schnittstelle

Microsoft.VisualStudio.TextManager.Interop-Namespace