IDebugDocumentText2::GetText
Извлекает текст из указанной позиции в документе.
Синтаксис
Параметры
pos
[in] Структура TEXT_POSITION , указывающая расположение извлекаемого текста.
cMaxChars
[in] Максимальное количество символов извлекаемого текста.
pText
[in, out] Указатель на буфер, который должен быть заполнен нужным текстом. Этот буфер должен содержать по крайней мере cMaxChars
количество расширенных символов.
pcNumChars
[out] Возвращает количество фактически извлеченных символов.
Возвращаемое значение
В случае успешного выполнения возвращается S_OK
; в противном случае возвращается код ошибки.
Пример
В этом примере показано, как этот метод можно вызывать из C#.
using System.Runtime.Interop.Services;
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Debugger.Interop;
namespace Mynamespace
{
class MyClass
{
string GetDocumentText(IDebugDocumentText2 pText, TEXT_POSITION pos)
{
string documentText = string.Empty;
if (pText != null)
{
uint numLines = 0;
uint numChars = 0;
int hr;
hr = pText.GetSize(ref numLines, ref numChars);
if (ErrorHandler.Succeeded(hr))
{
IntPtr buffer = Marshal.AllocCoTaskMem((int)numChars * sizeof(char));
uint actualChars = 0;
hr = pText.GetText(pos, numChars, buffer, out actualChars);
if (ErrorHandler.Succeeded(hr))
{
documentText = Marshal.PtrToStringUni(buffer, (int)actualChars);
}
Marshal.FreeCoTaskMem(buffer);
}
}
return documentText;
}
}
}