共用方式為


IDiaSession::getEnumTables

擷取包含在符號存放區中的所有資料表的列舉值。

HRESULT getEnumTables ( 
   IDiaEnumTables** ppEnumTables
);

參數

  • ppEnumTables
    [] out傳回IDiaEnumTables物件。 您可以使用這個介面來列舉符號存放區中的資料表。

傳回值

如果成功的話,會傳回S_OK。 否則,會傳回錯誤碼。

範例

本範例將示範一般的函式,使用getEnumTables來取得特定的列舉值物件的方法。 如果找不到此列舉值,函數就會傳回指標,就可以轉換到所要的介面。 否則,函數會傳回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