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