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