Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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);
}