IVsTextLines.CopyLineText(Int32, Int32, Int32, Int32, IntPtr, Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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.