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;
}
}
}