Export (0) Print
Expand All

IDiaInjectedSource 

Accesses injected source code stored in the DIA data source.


IDiaInjectedSource : IUnknown

The following table shows the methods of IDiaInjectedSource.

Method Description

IDiaInjectedSource::get_crc

Retrieves a cyclic redundancy check (CRC) calculated from the bytes of the source code.

IDiaInjectedSource::get_length

Retrieves the number of bytes of code.

IDiaInjectedSource::get_filename

Retrieves the file name for the source.

IDiaInjectedSource::get_objectFilename

Retrieves the object file name to which the source was compiled.

IDiaInjectedSource::get_virtualFilename

Retrieves the name given to non-file source code; that is, code that was injected.

IDiaInjectedSource::get_sourceCompression

Retrieves the indicator of the source compression used.

IDiaInjectedSource::get_source

Retrieves the source code bytes.

Injected source is text that is injected during compilation. This does not mean the preprocessor #include used in C++.

Notes for Callers

Obtain this interface by calling the IDiaEnumInjectedSources::Item or IDiaEnumInjectedSources::Next methods. See the IDiaEnumInjectedSources interface for an example of obtaining the IDiaInjectedSource interface.

This example displays the data available from the IDiaInjectedSource interface. For an alternative approach using the IDiaPropertyStorage interface, see the example in the 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);
    }
}

Header: Dia2.h

Library: diaguids.lib

DLL: msdia80.dll

Community Additions

ADD
Show:
© 2014 Microsoft