IVsTextLines.CopyLineText(Int32, Int32, Int32, Int32, IntPtr, Int32) Método

Definição

Coloca o intervalo especificado de texto em um buffer alocado pelo chamador (uma matriz).

public:
 int CopyLineText(int iStartLine, int iStartIndex, int iEndLine, int iEndIndex, IntPtr pszBuf, [Runtime::InteropServices::Out] int % pcchBuf);
public int CopyLineText (int iStartLine, int iStartIndex, int iEndLine, int iEndIndex, IntPtr pszBuf, out int pcchBuf);
abstract member CopyLineText : int * int * int * int * nativeint * int -> int
Public Function CopyLineText (iStartLine As Integer, iStartIndex As Integer, iEndLine As Integer, iEndIndex As Integer, pszBuf As IntPtr, ByRef pcchBuf As Integer) As Integer

Parâmetros

iStartLine
Int32

no Linha inicial.

iStartIndex
Int32

no Índice de caractere inicial dentro da linha. Deve ser menor ou igual ao comprimento da linha.

iEndLine
Int32

no Linha final.

iEndIndex
Int32

no Índice de caractere final dentro da linha. Deve ser menor ou igual ao comprimento da linha.

pszBuf
IntPtr

no Ponteiro para um buffer alocado pelo chamador.

pcchBuf
Int32

[entrada, saída] Ponteiro para uma contagem de caracteres Unicode — não bytes.

Retornos

Int32

Se o método for bem-sucedido, retornará S_OK. Se falhar, retornará um código de erro.

Comentários

Assinatura 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  
);  

Para determinar o tamanho da matriz necessária para manter um determinado trecho de texto, chame IVsTextLines.CopyLineText e transmita as posições inicial e final no buffer e null para o pszBuf parâmetro. Esse método retorna o tamanho da matriz no pcchBuf parâmetro.

Esse método copia até pcchBuf caracteres para o buffer que você aloca. Se o buffer não for grande o suficiente para conter esses caracteres, o método retornará BUFFER_E_DEST_TOO_SMALL e definirá o pcchBuf parâmetro para o tamanho necessário.

Observação

O CopyLineText método não acrescenta null à cadeia de caracteres de saída.

IVsTextLines.CopyLineText é usado como uma otimização sobre métodos que exigem o buffer para alocar a memória para eles, como GetLineText . No caso desse método, o buffer de texto aloca um BSTR, que tem um custo de desempenho razoavelmente significativo se o método for chamado repetidamente. IVsTextLines.CopyLineTextNo entanto, para o, você pode copiar repetidamente o buffer que aloca se você chamar esse método repetidamente.

Aplica-se a