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] Указатель на количество символов Юникод — не байты.
Возвращаемое значение
Если метод завершается успешно, возвращает значение 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 многократном вызове этого метода можно многократно копировать выделенный буфер.