Condividi tramite


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

Vedi anche