Condividi tramite


IDebugDocumentContext2::GetStatementRange

Ottiene l'intervallo di istruzioni file del contesto del documento.

Sintassi

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

Parametri

pBegPosition
[in, out] Struttura TEXT_POSITION compilata con la posizione iniziale. Impostare questo argomento su un valore Null se queste informazioni non sono necessarie.

pEndPosition
[in, out] Struttura TEXT_POSITION riempita con la posizione finale. Impostare questo argomento su un valore Null se queste informazioni non sono necessarie.

Valore restituito

Se ha esito positivo, restituisce S_OK; in caso contrario, restituisce un codice di errore.

Osservazioni:

Un intervallo di istruzioni è l'intervallo delle righe che hanno contribuito al codice a cui fa riferimento questo contesto di documento.

Per ottenere l'intervallo di codice sorgente (inclusi i commenti) all'interno di questo contesto del documento, chiamare il metodo GetSourceRange .

Esempio

Nell'esempio seguente viene illustrato come implementare questo metodo per un oggetto semplice CDebugContext che espone l'interfaccia IDebugDocumentContext2 . In questo esempio viene riempita la posizione finale solo se la posizione iniziale non è un valore 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;
}

Vedi anche