IDiaSession::getEnumTables
Načte enumerátor pro všechny tabulky obsažené v úložišti symbolů.
Syntaxe
HRESULT getEnumTables (
IDiaEnumTables** ppEnumTables
);
Parametry
ppEnumTables
[ven] Vrátí objekt IDiaEnumTables . Toto rozhraní slouží k vytvoření výčtu tabulek v úložišti symbolů.
Vrácená hodnota
V případě úspěchu vrátí hodnotu S_OK
; v opačném případě vrátí kód chyby.
Příklad
Tento příklad představuje obecnou funkci, která používá metodu getEnumTables
k získání konkrétního objektu enumerátoru. Pokud je nalezen enumerátor, vrátí funkce ukazatel, který lze přetypovat na požadované rozhraní; v opačném případě funkce vrátí NULL
hodnotu .
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);
}