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