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

Weitere Informationen