IDiaEnumSectionContribs

Énumère les différentes contributions de section contenues dans la source de données.

Syntaxe

IDiaEnumSectionContribs : IUnknown

Méthodes dans l'ordre Vtable

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

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

Notes

Remarque pour les appelants

Obtenez cette interface à partir de la méthode IDiaSession::getEnumTables . Pour plus de détails, voir les exemples.

Exemple

Cet exemple montre comment obtenir (la fonction GetEnumSectionContribs) et utiliser (la fonction ShowSectionContribs) l’interface IDiaEnumSectionContribs. Pour obtenir un exemple plus complet d’utilisation des contributions de section, consultez l’interface IDiaSectionContrib.


IDiaEnumSectionContribs* GetEnumSectionContribs(IDiaSession *pSession)
{
    IDiaEnumSectionContribs* pUnknown    = NULL;
    REFIID                   iid         = __uuidof(IDiaEnumSectionContribs);
    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 ShowSectionContribs(IDiaSession *pSession)
{
    IDiaEnumSectionContribs* pEnumSectionContribs;

    pEnumSectionContribs = GetEnumSectionContribs(pSession);
    if (pSectionContrib != NULL)
    {
        IDiaSectionContrib* pSectionContrib;
        ULONG celt = 0;

        while(pEnumSectionContribs->Next(1, &pSectionContrib, &celt) == S_OK &&
              celt == 1)
        {
            PrintSectionContrib(pSectionContrib, pSession);
            pSectionContrib->Release();
        }
        pSectionContrib->Release();
    }
}

Configuration requise

En-tête : Dia2.h

Bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi