public static 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; }
public static 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); }