IDiaSession::getEnumTables
Recupera un enumerador para todas las tablas contenidas en el almacén de símbolos.
HRESULT getEnumTables (
IDiaEnumTables** ppEnumTables
);
ppEnumTables
[out] Devuelve un objeto IDiaEnumTables. Use esta interfaz para enumerar las tablas del almacén de símbolos.
Si la operación se realiza correctamente, devuelve S_OK
; de lo contrario, devuelve un código de error.
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);
}