다음을 통해 공유


IDebugDocumentText2::GetText

문서의 지정된 위치에서 텍스트를 검색합니다.

구문

int GetText(
    eumn_TEXT_POSITION pos,
    uint               cMaxChars,
    IntPtr             pText,
    out uint           pcNumChars
);

매개 변수

pos
[in] 검색할 텍스트의 위치를 나타내는 TEXT_POSITION 구조체입니다.

cMaxChars
[in] 검색할 텍스트의 최대 문자 수입니다.

pText
[in, out] 원하는 텍스트로 채워질 버퍼에 대한 포인터입니다. 이 버퍼는 최소 cMaxChars개의 와이드 문자를 포함할 수 있어야 합니다.

pcNumChars
[out] 실제로 검색된 문자 수를 반환합니다.

Return Value

성공하면 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;
        }
    }
}

참고 항목