IDiaInjectedSource
Acessa o código-fonte injetado armazenado na fonte de dados DIA (Acesso à Interface de Depuração).
Sintaxe
IDiaInjectedSource : IUnknown
Métodos na ordem VTable
A tabela a seguir mostra os métodos de IDiaInjectedSource
.
Método | Descrição |
---|---|
IDiaInjectedSource::get_crc | Recupera uma verificação de redundância cíclica (CRC) calculada a partir dos bytes do código-fonte. |
IDiaInjectedSource::get_length | Recupera o número de bytes de um código. |
IDiaInjectedSource::get_filename | Recupera o nome do arquivo da origem. |
IDiaInjectedSource::get_objectFilename | Recupera o nome do arquivo de objeto no qual a origem foi compilada. |
IDiaInjectedSource::get_virtualFilename | Recupera o nome fornecido ao código-fonte que não é de arquivo; ou seja, o código que foi injetado. |
IDiaInjectedSource::get_sourceCompression | Recupera o indicador da compactação fonte usada. |
IDiaInjectedSource::get_source | Recupera os bytes de código-fonte. |
Comentários
O código inserido é o texto injetado durante a compilação. Isso não significa o pré-processador #include
usado em C++.
Observações para chamadores
Obtenha essa interface chamando os métodos IDiaEnumInjectedSources::Item ou IDiaEnumInjectedSources::Next. Consulte a interface IDiaEnumInjectedSources para obter um exemplo de como obter a interface IDiaInjectedSource
.
Exemplo
Esse exemplo exibe os dados disponíveis na interface IDiaInjectedSource
. Para obter uma abordagem alternativa usando a interface IDiaPropertyStorage, consulte o exemplo na interface 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);
}
}
Requisitos
Cabeçalho: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia80.dll