IDebugDocumentContext2::GetStatementRange

Obtiene el intervalo de instrucciones de archivo del contexto del documento.

Sintaxis

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

Parámetros

pBegPosition
[dentro, fuera] Estructura TEXT_POSITION que se rellena con la posición inicial. Establezca este argumento en un valor NULL si no se necesita esta información.

pEndPosition
[dentro, fuera] Estructura TEXT_POSITION que se rellena con la posición final. Establezca este argumento en un valor NULL si no se necesita esta información.

Valor devuelto

Si la operación se realiza correctamente, devuelve S_OK; de lo contrario, devuelve un código de error.

Comentarios

Un intervalo de instrucciones es el intervalo de las líneas que han contribuido al código al que hace referencia este contexto de documento.

Para obtener el intervalo de código fuente (incluidos los comentarios) dentro de este contexto de documento, llame al método GetSourceRange .

Ejemplo

En el ejemplo siguiente se muestra cómo implementar este método para un objeto simple CDebugContext que expone la interfaz IDebugDocumentContext2 . En este ejemplo se rellena la posición final solo si la posición inicial no es un valor 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;
}

Consulte también