IDiaInjectedSourceIDiaInjectedSource

Greift auf injizierten, in der Dia-Datenquelle gespeicherten Quellcode zu.Accesses injected source code stored in the DIA data source.

SyntaxSyntax

IDiaInjectedSource : IUnknown

Methoden in Vtable-ReihenfolgeMethods in Vtable Order

In der folgenden Tabelle sind die Methoden von IDiaInjectedSource aufgeführt.The following table shows the methods of IDiaInjectedSource.

MethodeMethod BeschreibungDescription
IDiaInjectedSource::get_crcIDiaInjectedSource::get_crc Ruft eine zyklische Redundanz Überprüfung (CRC) ab, die aus den Bytes des Quellcodes berechnet wird.Retrieves a cyclic redundancy check (CRC) calculated from the bytes of the source code.
IDiaInjectedSource::get_lengthIDiaInjectedSource::get_length Ruft die Anzahl der Code Bytes ab.Retrieves the number of bytes of code.
IDiaInjectedSource::get_filenameIDiaInjectedSource::get_filename Ruft den Dateinamen für die Quelle ab.Retrieves the file name for the source.
IDiaInjectedSource::get_objectFilenameIDiaInjectedSource::get_objectFilename Ruft den Namen der Objektdatei ab, in die die Quelle kompiliert wurde.Retrieves the object file name to which the source was compiled.
IDiaInjectedSource::get_virtualFilenameIDiaInjectedSource::get_virtualFilename Ruft den Namen des angegebenen nicht-Datei Quellcodes ab. Das heißt, Code, der eingefügt wurde.Retrieves the name given to non-file source code; that is, code that was injected.
IDiaInjectedSource::get_sourceCompressionIDiaInjectedSource::get_sourceCompression Ruft den Indikator der verwendeten Quell Komprimierung ab.Retrieves the indicator of the source compression used.
IDiaInjectedSource::get_sourceIDiaInjectedSource::get_source Ruft die Quell Code Bytes ab.Retrieves the source code bytes.

HinweiseRemarks

Eingefügte Quelle ist Text, der während der Kompilierung eingefügt wird.Injected source is text that is injected during compilation. Dies bedeutet nicht, dass die Präprozessor#include C++in verwendet werden.This does not mean the preprocessor #include used in C++.

Hinweise für AufruferNotes for Callers

Rufen Sie diese Schnittstelle durch Aufrufen der idiaenuminjetedsources:: Item -Methode oder der idiaenuminjetedsources:: Next -Methode ab.Obtain this interface by calling the IDiaEnumInjectedSources::Item or IDiaEnumInjectedSources::Next methods. Ein Beispiel für das Abrufen der IDiaInjectedSource-Schnittstelle finden Sie unter idiaenuminjetedsources -Schnittstelle.See the IDiaEnumInjectedSources interface for an example of obtaining the IDiaInjectedSource interface.

BeispielExample

In diesem Beispiel werden die Daten in der IDiaInjectedSource-Schnittstelle angezeigt.This example displays the data available from the IDiaInjectedSource interface. Eine alternative Vorgehensweise bei Verwendung der idiapropertystorage -Schnittstelle finden Sie im Beispiel in der idiaenuminjetedsources -Schnittstelle.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);
    }
}

AnforderungenRequirements

Header: Dia2.hHeader: Dia2.h

Bibliothek: diaguids. libLibrary: diaguids.lib

DLL: msdia80.dllDLL: msdia80.dll

Siehe auchSee also