Condividi tramite


IDiaInjectedSource

Accede al codice sorgente inserito archiviato nell'origine dati DIA.

Sintassi

IDiaInjectedSource : IUnknown

Metodi nell'ordine Vtable

Nella tabella seguente vengono illustrati i metodi di IDiaInjectedSource.

metodo Descrizione
IDiaInjectedSource::get_crc Recupera un controllo di ridondanza ciclico calcolato dai byte del codice sorgente.
IDiaInjectedSource::get_length Recupera il numero di byte di codice.
IDiaInjectedSource::get_filename Recupera il nome del file per l'origine.
IDiaInjectedSource::get_objectFilename Recupera il nome del file dell'oggetto in cui è stata compilata l'origine.
IDiaInjectedSource::get_virtualFilename Recupera il nome specificato nel codice sorgente non file; ovvero il codice inserito.
IDiaInjectedSource::get_sourceCompression Recupera l'indicatore della compressione di origine utilizzata.
IDiaInjectedSource::get_source Recupera i byte del codice sorgente.

Osservazioni:

L'origine inserita è testo inserito durante la compilazione. Questo non significa il preprocessore #include usato in C++.

Note per i chiamanti

Ottenere questa interfaccia chiamando i metodi IDiaEnumInjectedSources::Item o IDiaEnumInjectedSources::Next . Per un esempio di recupero dell'interfacciaIDiaInjectedSource, vedere l'interfaccia IDiaEnumInjectedSources.

Esempio

In questo esempio vengono visualizzati i dati disponibili dall'interfaccia IDiaInjectedSource . Per un approccio alternativo che usa l'interfaccia IDiaProperty Archiviazione, vedere l'esempio nell'interfaccia 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);
    }
}

Requisiti

Intestazione: Dia2.h

Libreria: diaguids.lib

DLL: msdia80.dll

Vedi anche