IDebugDocumentText2::GetText
從指定的位置,文件中擷取的文字。
HRESULT GetText(
TEXT_POSITION pos,
ULONG cMaxChars,
WCHAR* pText,
ULONG* pcNumChars
);
int GetText(
eumn_TEXT_POSITION pos,
uint cMaxChars,
IntPtr pText,
out uint pcNumChars
);
參數
pos
[in]A TEXT_POSITION結構,其指出要擷取文字的位置。cMaxChars
[in]要擷取的文字字元的數目上限。pText
輸入 [、 輸出]是要在以想要的文字填滿的緩衝區指標。 這個緩衝區必須至少包含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;
}
}
}