次の方法で共有


IDebugDocumentContext2::GetStatementRange

ドキュメント コンテキストのファイル ステートメントの範囲を取得します。

構文

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

パラメーター

pBegPosition
[入力、出力] 開始位置が入力される TEXT_POSITION 構造体。 この情報が不要な場合は、この引数を null 値に設定します。

pEndPosition
[入力、出力] 終了位置が入力される TEXT_POSITION 構造体。 この情報が不要な場合は、この引数を null 値に設定します。

戻り値

成功した場合は、S_OK を返します。それ以外の場合は、エラー コードを返します。

解説

ステートメント範囲は、このドキュメント コンテキストで参照するコードを構成していた行の範囲です。

このドキュメント コンテキスト内のソース コード (コメントを含む) の範囲を取得するには、GetSourceRange メソッドを呼び出します。

次の例は、IDebugDocumentContext2 インターフェイスを公開するシンプルな CDebugContext オブジェクトにこのメソッドを実装する方法を示しています。 この例では、開始位置が 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;
}

関連項目