IDiaSession::getEnumTables
Pobiera moduł wyliczający dla wszystkich tabel zawartych w magazynie symboli.
Składnia
HRESULT getEnumTables (
IDiaEnumTables** ppEnumTables
);
Parametry
ppEnumTables
[out] Zwraca obiekt IDiaEnumTables . Użyj tego interfejsu, aby wyliczyć tabele w magazynie symboli.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość S_OK
; w przeciwnym razie zwraca kod błędu.
Przykład
W tym przykładzie przedstawiono funkcję ogólną, która używa getEnumTables
metody do uzyskania określonego obiektu wyliczającego. Jeśli moduł wyliczający zostanie znaleziony, funkcja zwraca wskaźnik, który można rzutować do żądanego interfejsu; w przeciwnym razie funkcja zwraca NULL
wartość .
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);
}