Share via


IDiaSession::getEnumTables

Recupera un enumerador para todas las tablas contenidas en el almacén de símbolos.

Sintaxis

HRESULT getEnumTables (
    IDiaEnumTables** ppEnumTables
);

Parámetros

ppEnumTables

[out] Devuelve un objeto IDiaEnumTables. Use esta interfaz para enumerar las tablas del almacén de símbolos.

Valor devuelto

Si la operación se realiza correctamente, devuelve S_OK; de lo contrario, devuelve un código de error.

Ejemplo

En este ejemplo se presenta una función general que usa el método getEnumTables para obtener un objeto enumerador específico. Si se encuentra el enumerador, la función devuelve un puntero que se puede convertir a la interfaz deseada; de lo contrario, la función devuelve 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);
}

Consulte también