Partager via


IDiaInjectedSource

Les accès sont injecté code source enregistré dans la source de données de diamètre.

IDiaInjectedSource : IUnknown

méthodes en commande de Vtable

Le tableau suivant répertorie les méthodes d' IDiaInjectedSource.

Méthode

Description

IDiaInjectedSource::get_crc

Récupère un contrôle de (CRC) redondance cyclique calculé des octets de code source.

IDiaInjectedSource::get_length

Récupère le nombre d'octets du code.

IDiaInjectedSource::get_filename

Extrait le nom de fichier de la source.

IDiaInjectedSource::get_objectFilename

Récupère le nom de fichier objet auquel la source a été compilée.

IDiaInjectedSource::get_virtualFilename

Extrait le nom donné au code source non ; autrement dit, le code qui a été injecté.

IDiaInjectedSource::get_sourceCompression

Récupère l'indicateur de la compression de source utilisée.

IDiaInjectedSource::get_source

Récupère les octets de code source.

Notes

la source injectée est un texte qui est injecté pendant la compilation. Cela ne signifie pas le préprocesseur #include utilisé en C++.

Remarques pour les appelants

obtenez cette interface en appelant les méthodes d' IDiaEnumInjectedSources::Item ou d' IDiaEnumInjectedSources::Next . Consultez l'interface d' IDiaEnumInjectedSources pour obtenir un exemple d'obtenir IDiaInjectedSource pour relier.

Exemple

Cet exemple affiche les données disponibles dans l'interface d' IDiaInjectedSource . Pour une approche alternative à l'aide de l'interface d' IDiaPropertyStorage , consultez l'exemple de l'interface d' 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_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);
    }
}

Configuration requise

en-tête : Dia2.h

bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi

Référence

IDiaEnumInjectedSources::Item

IDiaEnumInjectedSources::Next

IDiaEnumInjectedSources

Autres ressources

Interfaces (Kit de développement logiciel de Debug Interface Access)