Поделиться через


IDebugDocumentContext2::GetStatementRange

Возвращает диапазон инструкций файла контекста документа.

Синтаксис

int GetStatementRange(
    TEXT_POSITION[] pBegPosition,
    TEXT_POSITION[] pEndPosition
);

Параметры

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

См. также