Bagikan melalui


IDiaSession::getEnumTables

Mengambil enumerator untuk semua tabel yang terkandung dalam penyimpanan simbol.

Sintaks

HRESULT getEnumTables (
    IDiaEnumTables** ppEnumTables
);

Parameter

ppEnumTables

[out] Mengembalikan objek IDiaEnumTables. Gunakan antarmuka ini untuk mengenumerasi tabel di penyimpanan simbol.

Tampilkan Nilai

Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode galat.

Contoh

Contoh ini menyajikan fungsi umum yang menggunakan metode getEnumTables untuk memperoleh objek enumerator tertentu. Jika enumerator ditemukan, fungsi tersebut mengembalikan penunjuk yang dapat ditransmisikan ke antarmuka yang diinginkan; jika sebaliknya, fungsi mengembalikan 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);
}

Baca juga