IDebugDocumentText2 : : GetText
extrait le texte de la position spécifiée dans le document.
HRESULT GetText(
TEXT_POSITION pos,
ULONG cMaxChars,
WCHAR* pText,
ULONG* pcNumChars
);
int GetText(
eumn_TEXT_POSITION pos,
uint cMaxChars,
IntPtr pText,
out uint pcNumChars
);
Paramètres
pos
[in] Une structure de TEXT_POSITION qui indique l'emplacement du texte à récupérer.cMaxChars
[in] Le nombre maximal de caractères du texte à récupérer.pText
[in, out] Un pointeur vers une mémoire tampon qui doit être effectuée avec le texte souhaité. Cette mémoire tampon doit pouvoir contenir au moins le numéro d' cMaxChars à caractères larges.pcNumChars
[out] Retourne le nombre de caractères réellement récupérés.
Valeur de retour
En cas de réussite, retourne S_OK; sinon, retourne un code d'erreur.
Exemple
Cet exemple montre comment appeler cette méthode à partir de 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;
}
}
}