IDiaSession::getEnumTables
Ruft einen Enumerator für alle Tabellen ab, die im Symbolspeicher enthalten sind.
Syntax
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
Wenn die Ausführung erfolgreich ist, wird S_OK
, andernfalls ein Fehlercode zurückgegeben.
Beispiel
In diesem Beispiel wird eine allgemeine Funktion vorgestellt, die die getEnumTables
-Methode verwendet, um ein bestimmtes Enumeratorobjekt abzurufen. Wenn der Enumerator gefunden wird, gibt die Funktion einen Zeiger zurück, der in die gewünschte Schnittstelle umgewandelt werden kann, andernfalls gibt die Funktion NULL
zurü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);
}