다음을 통해 공유


IDiaSession::getEnumTables

기호 저장소에 포함된 모든 테이블에 대한 열거자를 검색합니다.

구문

HRESULT getEnumTables (
    IDiaEnumTables** ppEnumTables
);

매개 변수

ppEnumTables

[out] IDiaEnumTables 개체를 반환합니다. 이 인터페이스를 사용하여 기호 저장소의 테이블을 열거합니다.

Return Value

성공하면 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);
}

참고 항목