Compartilhar via


IDebugDocumentContext2::GetStatementRange

Obtém o intervalo de instrução de arquivo do contexto do documento.

Sintaxe

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

Parâmetros

pBegPosition
[dentro, fora] Uma estrutura TEXT_POSITION que é preenchida com a posição inicial. Defina esse argumento como um valor nulo se essas informações não forem necessárias.

pEndPosition
[dentro, fora] Uma estrutura TEXT_POSITION que é preenchida com a posição final. Defina esse argumento como um valor nulo se essas informações não forem necessárias.

Valor de retorno

Se tiver êxito, retornará S_OK. Caso contrário, retornará um código de erro.

Comentários

Um intervalo de instruções é o intervalo das linhas que contribuíram com o código ao qual este contexto de documento se refere.

Para obter o intervalo de código-fonte (incluindo comentários) dentro deste contexto de documento, chame o GetSourceRange método.

Exemplo

O exemplo a seguir mostra como implementar esse método para um objeto simples CDebugContext que expõe a interface IDebugDocumentContext2 . Este exemplo preenche a posição final somente se a posição inicial não for um valor nulo.

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

Confira também