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