IVsTextLines.CopyLineText(Int32, Int32, Int32, Int32, IntPtr, Int32) Метод

Определение

Помещает заданный диапазон текста в буфер, выделенный вызывающим объектом (массив).

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

Параметры

iStartLine
Int32

[in] Начальная строка.

iStartIndex
Int32

[in] Индекс начального знака в строке. Должен быть меньше или равен длине строки.

iEndLine
Int32

[in] Конечная строка.

iEndIndex
Int32

[in] Индекс последнего знака в строке. Должен быть меньше или равен длине строки.

pszBuf
IntPtr

[in] Указатель на выделенный вызывающим объектом буфер.

pcchBuf
Int32

[in, out] Указатель на количество символов Юникод — не байты.

Возвращаемое значение

Int32

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Комментарии

Подпись COM

Из текстмгр. IDL:

HRESULT IVsTextLines::CopyLineText(  
   [in] long iStartLine,  
   [in] CharIndex iStartIndex,  
   [in] long iEndLine,  
   [in] CharIndex iEndIndex,  
   [in] LPWSTR pszBuf,  
   [in, out] long *pcchBuf  
);  

Чтобы определить размер массива, необходимого для хранения заданного фрагмента текста, вызовите метод IVsTextLines.CopyLineText и передайте начальные и конечные позиции в буфере и null для pszBuf параметра. Затем этот метод возвращает размер массива в pcchBuf параметре.

Этот метод копирует до pcchBuf символов в выделенный буфер. Если буфер недостаточно велик для хранения этих символов, метод возвращает BUFFER_E_DEST_TOO_SMALL и задает pcchBuf для параметра требуемый размер.

Примечание

CopyLineTextМетод не добавляет null в выходную строку.

IVsTextLines.CopyLineText используется в качестве оптимизации для методов, требующих, чтобы буфер выделил память для них, например GetLineText . В случае с этим методом текстовый буфер выделяет строку BSTR, что имеет довольно значительные затраты на производительность, если метод вызывается повторно. Тем не менее, при IVsTextLines.CopyLineText многократном вызове этого метода можно многократно копировать выделенный буфер.

Применяется к