IDiaInjectedSource
Доступ впрыснули исходный код, которые хранятся в источнике данных DIA.
IDiaInjectedSource : IUnknown
Методы в том порядке Vtable
В следующей таблице показаны методы IDiaInjectedSource.
Метод |
Описание |
---|---|
Возвращает вычисленный циклическую проверку избыточности (CRC) из байтов исходного кода. |
|
Извлекает число байтов кода. |
|
Возвращает имя файла источника. |
|
Извлекает имя файла объекта, на который был источником компилирования. |
|
Извлекает имя заданного к исходному коду non-файла; это значит, что код, который был впрыснут. |
|
Возвращает индикатор, используемого сжатия источника. |
|
Возвращает байты исходного кода. |
Заметки
Источник текста, введенного впрыснуто во время компиляции. Это не означает препроцессор #include используется в C++.
Замечания для вызывающих объектов
Для получения этого интерфейса нужно вызвать метод IDiaEnumInjectedSources::Item OR 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