Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All


Retrieves an enumerator for all tables contained in the symbol store.

HRESULT getEnumTables ( 
   IDiaEnumTables** ppEnumTables


[out] Returns an IDiaEnumTables object. Use this interface to enumerate the tables in the symbol store.

If successful, returns S_OK; otherwise, returns an error code.

This example presents a general function that uses the getEnumTables method to obtain a specific enumerator object. If the enumerator is found, the function returns a pointer that can be cast to the desired interface; otherwise, the function returns NULL.

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)
                  pTable = NULL;

Community Additions

© 2015 Microsoft