Partager via


IVsTextLines.GetMarkerData, méthode

Les données de marqueur de texte de retours pour la ligne spécifiée s'étendent dans la mémoire tampon de texte.

Espace de noms :  Microsoft.VisualStudio.TextManager.Interop
Assembly :  Microsoft.VisualStudio.TextManager.Interop (dans Microsoft.VisualStudio.TextManager.Interop.dll)

Syntaxe

'Déclaration
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

Paramètres

  • iTopLine
    Type : Int32

    [in] ligne de haut des données de marque.

  • iBottomLine
    Type : Int32

    [in] ligne inférieure des données de marque.

Valeur de retour

Type : Int32
Si la méthode réussit, elle retourne S_OK.En cas d'échec, un code d'erreur est retourné.

Notes

Signature de COM

De textmgr.idl :

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

Utilisez cette méthode avec l'GetLineData pour déterminer les données de marque pour une plage donnée dans la mémoire tampon de texte. Une fois que vous appeliez IVsTextLines.GetMarkerData, vous devez ensuite appeler l'ReleaseMarkerData pour permettre à la mémoire tampon de texte pour nettoyer la structure d'MARKERDATA.

GetMarkerData en code managé

l'GetMarkerData peut provoquer des problèmes en code managé. L'implémentation d'GetMarkerData que vous ne possédez pas Release le membre d'pLayer. Par conséquent, il n'effectue pas AddRef sur l'interface. Il n'existe aucun problème dans le natif C++ à condition que vous n'appeliez pas Release en code managé que que vous ne pouvez pas contrôler quand une version finale est effectuée. Pour être sécurisé, vous devez effectuer AddRef sur le membre d'pLayer après que l'GetMarkerData complète la structure de données. La méthode la plus simple consiste à 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);

Sécurité .NET Framework

Voir aussi

Référence

IVsTextLines Interface

Microsoft.VisualStudio.TextManager.Interop, espace de noms