Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 NULLwartość .
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);
}