IDiaSession::getEnumTables

检索在符号存储区中包含的所有表的枚举数。

HRESULT getEnumTables ( 
   IDiaEnumTables** ppEnumTables
);

参数

  • ppEnumTables
    [out] 返回 IDiaEnumTables 对象。在符号存储区使用此接口来枚举表。

返回值

如果成功,则返回; S_OK否则,返回错误代码。

示例

此示例演示了使用 getEnumTables 方法获取给定 enumerator 对象的泛型函数。如果查找枚举数,则函数返回可转换为所需接口的指针;否则,该函数返回 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)
                  {
                       break;
                  }
                  pTable = NULL;
             }
        }
    }
    return(pUnknown);
}

请参见

参考

IDiaEnumTables

IDiaSession