Partager via


IVsTextLines.CopyLineText, méthode

Met l'étendue spécifiée du texte dans une mémoire tampon allouée par l'appelant (une matrice).

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

Syntaxe

'Déclaration
Function CopyLineText ( _
    iStartLine As Integer, _
    iStartIndex As Integer, _
    iEndLine As Integer, _
    iEndIndex As Integer, _
    pszBuf As IntPtr, _
    <OutAttribute> ByRef pcchBuf As Integer _
) As Integer
int CopyLineText(
    int iStartLine,
    int iStartIndex,
    int iEndLine,
    int iEndIndex,
    IntPtr pszBuf,
    out int pcchBuf
)
int CopyLineText(
    [InAttribute] int iStartLine, 
    [InAttribute] int iStartIndex, 
    [InAttribute] int iEndLine, 
    [InAttribute] int iEndIndex, 
    [InAttribute] IntPtr pszBuf, 
    [InAttribute] [OutAttribute] int% pcchBuf
)
abstract CopyLineText : 
        iStartLine:int * 
        iStartIndex:int * 
        iEndLine:int * 
        iEndIndex:int * 
        pszBuf:IntPtr * 
        pcchBuf:int byref -> int
function CopyLineText(
    iStartLine : int, 
    iStartIndex : int, 
    iEndLine : int, 
    iEndIndex : int, 
    pszBuf : IntPtr, 
    pcchBuf : int
) : int

Paramètres

  • iStartLine
    Type : Int32

    [in] à partir de la ligne.

  • iStartIndex
    Type : Int32

    [in] démarrant l'index de caractère dans la ligne. Doit être inférieur ou égal à la longueur de la ligne.

  • iEndLine
    Type : Int32

    [in] terminant la ligne.

  • iEndIndex
    Type : Int32

    [in] index de caractère de fin dans la ligne. Doit être inférieur ou égal à la longueur de la ligne.

  • pszBuf
    Type : IntPtr

    [in] pointeur à une mémoire tampon allouée par l'appelant.

  • pcchBuf
    Type : Int32%

    [in, out] pointeur à un nombre de caractères Unicode - pas octets.

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::CopyLineText(
   [in] long iStartLine,
   [in] CharIndex iStartIndex,
   [in] long iEndLine,
   [in] CharIndex iEndIndex,
   [in] LPWSTR pszBuf,
   [in, out] long *pcchBuf
);

Pour déterminer la taille de la matrice nécessaire pour maintenir une étendue donnée de texte, appel IVsTextLines.CopyLineText et exécuté en positions de début et se terminantes dans la mémoire tampon et nullune référence null (Nothing en Visual Basic) pour le paramètre d'pszBuf. Cette méthode retourne ensuite la taille de la matrice dans le paramètre d'pcchBuf.

Cette méthode copie jusqu'à pcchBuf des personnages dans la mémoire tampon que que vous allouez. Si la mémoire tampon n'est pas suffisamment grande pour maintenir ces personnages, la méthode retourne BUFFER_E_DEST_TOO_SMALL et définit le paramètre d'pcchBuf à la taille requise.

Notes

La méthode d'CopyLineText n'ajoute pas nullune référence null (Nothing en Visual Basic) à la chaîne de sortie.

IVsTextLines.CopyLineText est utilisé comme optimisation sur des méthodes qui nécessitent de la mémoire tampon pour allouer la mémoire associées, telles que l'GetLineText. Dans le cas de cette méthode, la mémoire tampon de texte alloue BSTR, qui a une représentation assez importante coûtée si la méthode est appelée à plusieurs reprises. Pour IVsTextLines.CopyLineText, toutefois, vous pouvez à plusieurs reprises copier au-dessus de la mémoire tampon que que vous allouez si vous appelez cette méthode à plusieurs reprises.

Sécurité .NET Framework

Voir aussi

Référence

IVsTextLines Interface

Microsoft.VisualStudio.TextManager.Interop, espace de noms