Partager via


IDiaSession::getEnumTables

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

HRESULT getEnumTables ( 
   IDiaEnumTables** ppEnumTables
);

Paramètres

  • ppEnumTables
    [out] Retourne un objet d' IDiaEnumTables . Utilisez cette interface pour énumérer les tables dans le magasin de symboles.

Valeur de retour

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 de getEnumTables pour obtenir un objet énumérateur spécifique. Si l'énumérateur est trouvé, la fonction retourne un pointeur qui peut être casté à l'interface souhaitée ; sinon, la fonction retourne 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

Référence

IDiaEnumTables

IDiaSession