Aracılığıyla paylaş


IDiaSession::getEnumTables

Sembol deposunda bulunan tüm tablolar için bir numaralandırıcı alır.

Sözdizimi

HRESULT getEnumTables (
    IDiaEnumTables** ppEnumTables
);

Parametreler

ppEnumTables

[out] Bir IDiaEnumTables nesnesi döndürür. Sembol deposundaki tabloları numaralandırmak için bu arabirimi kullanın.

İade Değeri

Başarılı olursa döndürür S_OK; aksi takdirde bir hata kodu döndürür.

Örnek

Bu örnek, belirli bir numaralandırıcı nesnesini elde etmek için yöntemini kullanan getEnumTables genel bir işlev sunar. Numaralandırıcı bulunursa, işlev istenen arabirime atanabilecek bir işaretçi döndürür; aksi takdirde işlevi döndürür 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);
}

Ayrıca bkz.