IDiaSession::getEnumTables
Recupera um enumerador para todas as tabelas contidas no repositório de símbolos.
Sintaxe
HRESULT getEnumTables (
IDiaEnumTables** ppEnumTables
);
Parâmetros
ppEnumTables
[out] Retorna um objeto IDiaEnumTables. Use essa interface para enumerar as tabelas no repositório de símbolos.
Valor Retornado
Se tiver êxito, retornará S_OK
. Caso contrário, retornará um código de erro.
Exemplo
Este exemplo apresenta uma função geral que usa o método getEnumTables
para obter um objeto enumerador específico. Se o enumerador for encontrado, a função retornará um ponteiro que pode ser convertido na interface desejada; caso contrário, a função retornará 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);
}