共用方式為


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

請參閱

參考

IDebugDocumentText2

TEXT_POSITION