IDiaSession::getEnumTables
Ruft einen Enumerator für alle Tabellen ab, die im Symbolspeicher enthalten sind.
HRESULT getEnumTables (
IDiaEnumTables** ppEnumTables
);
Parameter
- ppEnumTables
[out] Gibt ein IDiaEnumTables-Objekt zurück.Verwenden Sie diese Schnittstelle, um die Tabellen im Symbolspeicher aufzulisten.
Rückgabewert
Bei Erfolg gibt S_OKzurück. andernfalls gibt einen Fehlercode zurück.
Beispiel
Dieses Beispiel stellt eine allgemeine Funktion dar, die die getEnumTables-Methode verwendet, um ein bestimmtes Enumeratorobjekt.Wenn dieser gefunden wird, gibt die Funktion einen Zeiger zurück, der auf die gewünschte Schnittstelle umgewandelt werden kann. andernfalls gibt die Funktion NULLzurück.
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);
}