Freigeben über


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

Siehe auch

Referenz

IDiaEnumTables

IDiaSession