IDebugDocumentContext2::GetStatementRange
Возвращает диапазон инструкций файла контекста документа.
Синтаксис
Параметры
pBegPosition
[in, out] Структура TEXT_POSITION , заполненная начальной позицией. Задайте для этого аргумента значение NULL, если эта информация не нужна.
pEndPosition
[in, out] Структура TEXT_POSITION , заполненная конечной позицией. Задайте для этого аргумента значение NULL, если эта информация не нужна.
Возвращаемое значение
В случае успешного выполнения возвращается S_OK
; в противном случае возвращается код ошибки.
Замечания
Диапазон инструкций — это диапазон строк, которые способствовали коду, к которому относится контекст документа.
Чтобы получить диапазон исходного кода (включая комментарии) в контексте этого документа, вызовите метод GetSourceRange .
Пример
В следующем примере показано, как реализовать этот метод для простого CDebugContext
объекта, предоставляющего интерфейс IDebugDocumentContext2 . Этот пример заполняет конечную позицию только в том случае, если начальная позиция не является значением NULL.
HRESULT CDebugContext::GetStatementRange(TEXT_POSITION* pBegPosition,
TEXT_POSITION* pEndPosition)
{
HRESULT hr;
// Check for a valid beginning position argument pointer.
if (pBegPosition)
{
// Copy the member TEXT_POSITION into the local pBegPosition.
memcpy(pBegPosition, &m_pos, sizeof (TEXT_POSITION));
// Check for a valid ending position argument pointer.
if (pEndPosition)
{
// Copy the member TEXT_POSITION into the local pEndPosition.
memcpy(pEndPosition, &m_pos, sizeof (TEXT_POSITION));
}
hr = S_OK;
}
else
{
hr = E_INVALIDARG;
}
return hr;
}