IDiaSession::getEnumTables
Recupera un enumeratore per tutte le tabelle contenute nell'archivio simboli.
Sintassi
HRESULT getEnumTables (
IDiaEnumTables** ppEnumTables
);
Parametri
ppEnumTables
[out] Restituisce un oggetto IDiaEnumTables . Utilizzare questa interfaccia per enumerare le tabelle nell'archivio simboli.
Valore restituito
Se ha esito positivo, restituisce S_OK
; in caso contrario, restituisce un codice di errore.
Esempio
In questo esempio viene presentata una funzione generale che usa il getEnumTables
metodo per ottenere un oggetto enumeratore specifico. Se l'enumeratore viene trovato, la funzione restituisce un puntatore che può essere sottoposto a cast all'interfaccia desiderata; in caso contrario, la funzione restituisce 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);
}