Partager via


IDiaEnumInputAssemblyFiles

Énumérez les fichiers d’assembly d’entrée répertoriés dans la source de données.

Syntaxe

IDiaEnumInputAssemblyFiles : IUnknown

Méthodes dans l'ordre Vtable

Le tableau suivant présente les méthodes de IDiaEnumInputAssemblyFiles.

Méthode Description
IDiaEnumInputAssemblyFiles ::get__NewEnum Récupère la version de l’interface IEnumVARIANT de cet énumérateur.
IDiaEnumInputAssemblyFiles ::get_Count Récupère le nombre de fichiers d’assembly d’entrée.
IDiaEnumInputAssemblyFiles ::Item Récupère un fichier d’assembly d’entrée au moyen d’un index.
IDiaEnumInputAssemblyFiles ::Next Récupère un nombre spécifié de fichiers d’assembly d’entrée dans la séquence d’énumération.
IDiaEnumInputAssemblyFiles ::Skip Ignore un nombre spécifié de fichiers d’assembly d’entrée dans une séquence d’énumération.
IDiaEnumInputAssemblyFiles ::Reset Réinitialise une séquence d'énumération.
IDiaEnumInputAssemblyFiles ::Clone Crée un autre énumérateur qui contient le même état d’énumération que l’actuel.

Remarques

Remarques pour les appelants

Cette interface est obtenue en appelant la méthode IDiaSession ::findInputAssemblyFiles avec le nom d’un fichier source spécifique ou en appelant la méthode IDiaSession ::getEnumTables avec l’identificateur global unique (GUID) de l’interface IDiaEnumInputAssemblyFiles .

Exemple

Cet exemple montre comment obtenir (la fonction GetEnumInputAssemblyFiles) et utiliser (la fonction DumpAllInputAssemblyFiles) l’interface IDiaEnumInputAssemblyFiles. Consultez l’interface IDiaPropertyStorage pour obtenir une implémentation de la PrintPropertyStorage fonction. Pour obtenir une autre sortie, consultez l’interface IDiaInputAssemblyFile .


IDiaEnumInputAssemblyFiles* GetEnumInputAssemblyInputFiles(IDiaSession *pSession)
{
    IDiaEnumInputAssemblyFiles* pUnknown    = NULL;
    REFIID                   iid         = __uuidof(IDiaEnumInputAssemblyFiles);
    IDiaEnumTables*          pEnumTables = NULL;
    IDiaTable*               pTable      = NULL;
    ULONG                    celt        = 0;

    if (pSession->getEnumTables(&pEnumTables) != S_OK)
    {
        wprintf(L"ERROR - GetTable() getEnumTables\n");
        return NULL;
    }
    while (pEnumTables->Next(1, &pTable, &celt) == S_OK && celt == 1)
    {
        // There is only one table that matches the given iid
        HRESULT hr = pTable->QueryInterface(iid, (void**)&pUnknown);
        pTable->Release();
        if (hr == S_OK)
        {
            break;
        }
    }
    pEnumTables->Release();
    return pUnknown;
}

void DumpAllInputAssemblyFiles( IDiaSession* pSession)
{
    IDiaEnumInputAssemblyFiles* pEnumInpAsmFiles;

    pEnumInpAsmFiles = GetEnumInputAssemblyInputFiles(pSession);
    if (pEnumInpAsmFiles != NULL)
    {
        IDiaInputAssemblyFile* pInpAsmFile;
        ULONG celt = 0;

        while(pEnumInpAsmFiles->Next(1, &pInpAsmFile, &celt) == S_OK &&
              celt == 1)
        {
            IDiaPropertyStorage *pPropertyStorage;
            if (pInpAsmFile->QueryInterface(__uuidof(IDiaPropertyStorage),
                                          (void **)&pPropertyStorage) == S_OK)
            {
                PrintPropertyStorage(pPropertyStorage);
                pPropertyStorage->Release();
            }
            pInpAsmFile->Release();
        }
        pEnumInpAsmFiles->Release();
    }
}

Spécifications

En-tête : Dia2.h

Bibliothèque : diaguids.lib

DLL : msdia140.dll

Voir aussi