Partager via


IDiaSession::getEnumTables

Récupère un énumérateur pour toutes les tables contenues dans le magasin de symboles.

Syntaxe

HRESULT getEnumTables (
    IDiaEnumTables** ppEnumTables
);

Paramètres

ppEnumTables

[out] Renvoie un objet IDiaEnumTables. Utilisez cette interface pour énumérer les tables dans le magasin de symboles.

Valeur renvoyée

En cas de réussite, retourne S_OK , sinon, retourne un code d'erreur.

Exemple

Cet exemple présente une fonction générale qui utilise la méthode getEnumTables pour obtenir un objet énumérateur spécifique. Si l’énumérateur est trouvé, la fonction renvoie un pointeur qui peut être casté dans l’interface souhaitée. Sinon, la fonction renvoie NULL.

IUnknown *GetTable(IDiaSession *pSession, REFIID iid)
{
    IUnknown *pUnknown = NULL;
    if (pSession != NULL)
    {
        CComPtr<IDiaEnumTables> pEnumTables;
        if (pSession->getEnumTables(&pEnumTables) == S_OK)
        {
            CComPtr<IDiaTable> pTable;
            DWORD celt = 0;
            while(pEnumTables->Next(1,&pTable,&celt) == S_OK &&
                  celt == 1)
            {
                if (pTable->QueryInterface(iid, (void **)pUnknown) == S_OK)
                {
                    break;
                }
                pTable = NULL;
            }
        }
    }
    return(pUnknown);
}

Voir aussi