次の方法で共有


IDiaSession::getEnumTables

シンボル ストアに含まれるすべてのテーブルの列挙子を取得します。

HRESULT getEnumTables ( 
   IDiaEnumTables** ppEnumTables
);

パラメーター

  • ppEnumTables
    [入力] 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