Partilhar via


IDiaInjectedSource

Acessos injetado armazenado na fonte de dados de DIA de código-fonte.

IDiaInjectedSource : IUnknown

Métodos na ordem de 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 de bytes de código-fonte.

IDiaInjectedSource::get_length

Recupera o número de bytes de código.

IDiaInjectedSource::get_filename

Recupera o nome de arquivo para a fonte.

IDiaInjectedSource::get_objectFilename

Recupera o nome do arquivo de objeto ao qual a origem foi compilada.

IDiaInjectedSource::get_virtualFilename

Recupera o nome dado ao código-fonte de diferentes de arquivos; ou seja, o código que foi injetado.

IDiaInjectedSource::get_sourceCompression

Recupera o indicador de que a compactação de fonte usado.

IDiaInjectedSource::get_source

Recupera os bytes de código fonte.

Comentários

Origem injetada é o texto que é injetado durante a compilação. Isso não significa o pré-processador #include usada em C++.

Observações para chamadores

Obter essa interface chamando o IDiaEnumInjectedSources::Item ou IDiaEnumInjectedSources::Next métodos. Consulte o IDiaEnumInjectedSources interface para obter um exemplo de como obter o IDiaInjectedSource interface.

Exemplo

Este exemplo exibe os dados disponíveis a partir do IDiaInjectedSource interface. Para uma abordagem alternativa usando o IDiaPropertyStorage interface, consulte o exemplo na IDiaEnumInjectedSources interface.

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);
    }
}

Requisitos

Cabeçalho: Dia2.h

Biblioteca: diaguids.lib

DLL: msdia80.dll

Consulte também

Referência

IDiaEnumInjectedSources::Item

IDiaEnumInjectedSources::Next

IDiaEnumInjectedSources

Outros recursos

Interfaces (SDK de Acesso à Interface de Depuração)