IDiaInjectedSource
存取插入儲存在 DIA 的資料來源中的原始程式碼。
IDiaInjectedSource : IUnknown
方法 Vtable 順序
下表顯示的方法IDiaInjectedSource。
方法 |
描述 |
---|---|
擷取從來源程式碼中的位元組計算的循環冗餘檢查 (CRC)。 |
|
擷取的程式碼的位元組數目。 |
|
擷取來源的檔案名稱。 |
|
擷取原始檔所編譯的目的檔名稱。 |
|
擷取指定給非檔案來源的程式碼路徑。 也就是插入的程式碼。 |
|
擷取來源使用的壓縮的指示器。 |
|
擷取來源的程式碼位元組。 |
備註
插入的來源是在編譯期間會插入的文字。 這不表示前置處理器#include C++ 中使用。
呼叫者的備忘稿
取得這個介面,藉由呼叫IDiaEnumInjectedSources::Item或IDiaEnumInjectedSources::Next方法。 請參閱IDiaEnumInjectedSources介面取得的例如IDiaInjectedSource介面。
範例
本範例將顯示的資料可以從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_filename(&objectFilename) == S_OK)
{
wprintf(L"%s", objectFilename);
}
else
{
wprintf(L"<none>");
}
wprintf(L"\n");
wprintf(L" virtual filename: ");
if (pSource->get_filename(&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