IDiaInjectedSource

Gli accessi hanno inserito il codice sorgente archiviato nell'origine dati di diametro.

IDiaInjectedSource : IUnknown

Metodi nell'ordine di Vtable

Nella tabella seguente sono elencati i metodi di IDiaInjectedSource.

Metodo

Descrizione

IDiaInjectedSource::get_crc

Recupera un controllo a (CRC) ridondanza ciclica calcolato dai byte del codice sorgente.

IDiaInjectedSource::get_length

Recupera il numero di byte del codice.

IDiaInjectedSource::get_filename

recupera il nome file per il database di origine.

IDiaInjectedSource::get_objectFilename

Recupera il nome file dell'oggetto a cui l'origine è stato compilato.

IDiaInjectedSource::get_virtualFilename

Recupera il nome assegnato al codice sorgente non di file, ovvero il codice che è stato inserito.

IDiaInjectedSource::get_sourceCompression

Recupera l'indicatore della compressione di origine utilizzata.

IDiaInjectedSource::get_source

Recupera i byte del codice sorgente.

Note

Il database di origine inserito è testo che viene inserito durante la compilazione.ciò non significa il preprocessore #include utilizzato in C++.

Note per i chiamanti

Leggi questa interfaccia chiamando IDiaEnumInjectedSources::Item o IDiaEnumInjectedSources::Next metodi.vedere IDiaEnumInjectedSources interfaccia per un esempio di verifica IDiaInjectedSource interfaccia.

Esempio

In questo esempio vengono visualizzati i dati disponibili da IDiaInjectedSource interfaccia.Per un metodo alternativo utilizzando il IDiaPropertyStorage l'interfaccia, vedere l'esempio in IDiaEnumInjectedSources interfaccia.

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

Requisiti

intestazione: Dia2.h

raccolta: diaguids.lib

DLL: msdia80.dll

Vedere anche

Riferimenti

IDiaEnumInjectedSources::Item

IDiaEnumInjectedSources::Next

IDiaEnumInjectedSources

Altre risorse

Interfacce (Debug Interface Access SDK)