Udostępnij za pośrednictwem


IDebugDocumentContext2::GetStatementRange

Pobiera zakres instrukcji pliku kontekstu dokumentu.

Składnia

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

Parametry

pBegPosition
[in, out] Struktura TEXT_POSITION wypełniona pozycją początkową. Ustaw ten argument na wartość null, jeśli te informacje nie są potrzebne.

pEndPosition
[in, out] Struktura TEXT_POSITION wypełniona pozycją końcową. Ustaw ten argument na wartość null, jeśli te informacje nie są potrzebne.

Wartość zwracana

Jeśli operacja powiedzie się, zwraca wartość S_OK; w przeciwnym razie zwraca kod błędu.

Uwagi

Zakres instrukcji to zakres wierszy, które przyczyniły się do kodu, do którego odwołuje się ten kontekst dokumentu.

Aby uzyskać zakres kodu źródłowego (w tym komentarze) w tym kontekście dokumentu, wywołaj metodę GetSourceRange .

Przykład

W poniższym przykładzie pokazano, jak zaimplementować tę metodę dla prostego CDebugContext obiektu, który uwidacznia interfejs IDebugDocumentContext2 . Ten przykład wypełnia końcową pozycję tylko wtedy, gdy pozycja początkowa nie jest wartością 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;
}

Zobacz też