共用方式為


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);
}

另請參閱