IDebugDocumentText2::GetText
ドキュメント内の指定された位置からテキストを取得します。
構文
パラメーター
pos
[入力] 取得するテキストの位置を示す TEXT_POSITION 構造体。
cMaxChars
[入力] 取得するテキストの最大文字数。
pText
[入力、出力] 目的のテキストが格納されるバッファーへのポインター。 このバッファーには、少なくとも cMaxChars
個のワイド文字を含めることができる必要があります。
pcNumChars
[出力] 実際に取得された文字数を返します。
戻り値
成功した場合は、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;
}
}
}