Freigeben über


IDebugDocumentContext2::GetStatementRange

Ruft den Datei-Anweisungsbereich des Dokumentkontexts ab.

Syntax

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

Parameter

pBegPosition
[in, out] Eine TEXT_POSITION Struktur, die mit der Anfangsposition gefüllt ist. Legen Sie dieses Argument auf einen Nullwert fest, wenn diese Informationen nicht benötigt werden.

pEndPosition
[in, out] Eine TEXT_POSITION Struktur, die mit der Endposition gefüllt ist. Legen Sie dieses Argument auf einen Nullwert fest, wenn diese Informationen nicht benötigt werden.

Rückgabewert

Wenn die Ausführung erfolgreich ist, wird S_OK, andernfalls ein Fehlercode zurückgegeben.

Hinweise

Ein Anweisungsbereich ist der Bereich der Zeilen, die den Code beigetragen haben, auf den dieser Dokumentkontext verweist.

Rufen Sie die GetSourceRange-Methode auf, um den Quellcodebereich (einschließlich Kommentaren) innerhalb dieses Dokumentkontexts abzurufen.

Beispiel

Das folgende Beispiel zeigt, wie Sie diese Methode für ein einfaches CDebugContext Objekt implementieren, das die IDebugDocumentContext2-Schnittstelle verfügbar macht. In diesem Beispiel wird die Endposition nur dann ausgefüllt, wenn die Anfangsposition kein Nullwert ist.

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

Siehe auch