Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Извлекает перечислитель для всех таблиц, содержащихся в хранилище символов.
Синтаксис
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);
}