IDiaInjectedSource

DIA データ ソースに保存されている挿入されたソース コードにアクセスします。

構文

IDiaInjectedSource : IUnknown

Vtable 順序のメソッド

次の表に、IDiaInjectedSource のメソッドを示します。

メソッド 説明
IDiaInjectedSource::get_crc ソース コードのバイトから計算された巡回冗長検査 (CRC) を取得します。
IDiaInjectedSource::get_length コードのバイト数を取得します。
IDiaInjectedSource::get_filename ソースのファイル名を取得します。
IDiaInjectedSource::get_objectFilename ソースのコンパイル先のオブジェクト ファイル名を取得します。
IDiaInjectedSource::get_virtualFilename ファイル以外のソース コード、つまり挿入されたコードに付けられた名前を取得します。
IDiaInjectedSource::get_sourceCompression 使用されているソース圧縮のインジケーターを取得します。
IDiaInjectedSource::get_source ソース コードのバイト数を取得します。

解説

挿入されたソースは、コンパイル時に挿入されたテキストです。 これは、C++ で使用されるプリプロセッサの #include を意味するわけではありません。

呼び出し元に関する注意事項

このインターフェイスを取得するには、IDiaEnumInjectedSources:: Item または IDiaEnumInjectedSources:: Next メソッドを呼び出します。 IDiaInjectedSource インターフェイスを取得する例については、IDiaEnumInjectedSources インターフェイスを参照してください。

この例では、IDiaInjectedSource インターフェイスから使用可能なデータを表示します。 IDiaPropertyStorage インターフェイスを使用した別の方法については、IDiaEnumInjectedSources インターフェイスの例を参照してください。

void PrintInjectedSource(IDiaInjectedSource* pSource)
{
    ULONGLONG codeLength      = 0;
    DWORD     crc             = 0;
    DWORD     compressionType = 0;
    BSTR      sourceFilename  = NULL;
    BSTR      objectFilename  = NULL;
    BSTR      virtualFilename = NULL;

    std::cout << "Injected Source:" << std::endl;
    if (pSource != NULL)
    {
        if (pSource->get_crc(&crc) == S_OK &&
            pSource->get_sourceCompression(&compressionType) == S_OK &&
            pSource->get_length(&codeLength) == S_OK)
        {
            wprintf(L"  crc = %lu\n", crc);
            wprintf(L"  code length = %I64u\n",codeLength);
            wprintf(L"  compression type code = %lu\n", compressionType);
        }

        wprintf(L"  source filename: ");
        if (pSource->get_filename(&sourceFilename) == S_OK)
        {
            wprintf(L"%s", sourceFilename);
        }
        else
        {
            wprintf(L"<none>");
        }
        wprintf(L"\n");

        wprintf(L"  object filename: ");
        if (pSource->get_objectFilename(&objectFilename) == S_OK)
        {
            wprintf(L"%s", objectFilename);
        }
        else
        {
            wprintf(L"<none>");
        }
        wprintf(L"\n");

        wprintf(L"  virtual filename: ");
        if (pSource->get_virtualFilename(&virtualFilename) == S_OK)
        {
            wprintf(L"%s", virtualFilename);
        }
        else
        {
            wprintf(L"<none>");
        }
        wprintf(L"\n");

        SysFreeString(sourceFilename);
        SysFreeString(objectFilename);
        SysFreeString(virtualFilename);
    }
}

要件

ヘッダー: Dia2.h

ライブラリ: diaguids.lib

DLL: msdia80.dll

関連項目