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.
pMarkerData
Type : array<Microsoft.VisualStudio.TextManager.Interop.MARKERDATA[][] structure remplie d'MARKERDATA de pointeur pour la plage indiquée.
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
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, voir Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.