IDiaSession::getEnumTablesIDiaSession::getEnumTables

Récupère un énumérateur pour toutes les tables contenues dans le magasin de symboles.Retrieves an enumerator for all tables contained in the symbol store.

SyntaxeSyntax

HRESULT getEnumTables (   
   IDiaEnumTables** ppEnumTables  
);  

ParamètresParameters

ppEnumTables
[out] Retourne un IDiaEnumTables objet.[out] Returns an IDiaEnumTables object. Cette interface permet d’énumérer les tables dans le magasin de symboles.Use this interface to enumerate the tables in the symbol store.

Valeur de retourReturn Value

En cas de réussite, retourne S_OK; sinon, retourne un code d’erreur.If successful, returns S_OK; otherwise, returns an error code.

ExempleExample

Cet exemple présente une fonction générale qui utilise le getEnumTables méthode pour obtenir un objet énumérateur spécifique.This example presents a general function that uses the getEnumTables method to obtain a specific enumerator object. Si l’énumérateur est trouvé, la fonction retourne un pointeur qui peut être converti à l’interface souhaitée ; Sinon, la fonction retourne NULL.If the enumerator is found, the function returns a pointer that can be cast to the desired interface; otherwise, the function returns 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 aussiSee Also

IDiaEnumTables IDiaEnumTables
IDiaSessionIDiaSession