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);
}