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