IDiaSession::getEnumTables
Возвращает перечислитель для всех таблиц, содержащихся в хранилище символов.
HRESULT getEnumTables (
IDiaEnumTables** ppEnumTables
);
Параметры
- ppEnumTables
[out] возвращает IDiaEnumTables объект. Используйте этот интерфейс для перечисления таблиц в хранилище символов.
Возвращаемое значение
В случае успеха возвращает S_OK; в противном случае возвращает код ошибки.
Пример
Этот пример представляет собой общую функцию, которая использует getEnumTables метод, чтобы получить определенный объект перечислителя. Если перечислитель находится, то функция возвращает указатель, который может быть приведен к требуемому интерфейсу. в противном случае функция возвращает 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);
}