Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
DIA veri kaynağı tablosunu numaralandırır.
Sözdizimi
IDiaTable : IEnumUnknown
Vtable Sırasına Göre Yöntemler
Aşağıdaki tabloda yönteminin yöntemleri gösterilmektedir IDiaTable.
| Metot | Açıklama |
|---|---|
| IDiaTable::get__NewEnum | Bu numaralandırıcının IEnumVARIANT Arabirimi sürümünü alır. |
| IDiaTable::get_name | Tablonun adını alır. |
| IDiaTable::get_Count | Tablodaki öğe sayısını alır. |
| IDiaTable::Item | Belirli bir giriş dizinine başvuru alır. |
Açıklamalar
Bu arabirim, Microsoft.VisualStudio.OLE.Interop ad alanında numaralandırma yöntemlerini uygular IEnumUnknown . IEnumUnknown Numaralandırma arabirimi, tablo içeriği üzerinde yineleme için IDiaTable::get_Count ve IDiaTable::Item yöntemlerinden çok daha verimlidir.
yönteminden veya Next yönteminden IDiaTable::Item döndürülen arabirimin yorumu IUnknown (Microsoft.VisualStudio.OLE.Interop ad alanında) tablo türüne bağlıdır. Örneğin, arabirim eklenen kaynakların listesini temsil ederseIDiaTable, IUnknown arabirim IDiaInjectedSource arabirimi için sorgulanmalıdır.
Arayanlar İçin Notlar
IDiaEnumTables::Item veya IDiaEnumTables::Next yöntemlerini çağırarak bu arabirimi alın.
Aşağıdaki arabirimler arabirimiyle uygulanır (diğer bir ifadeyle IDiaTable , aşağıdaki arabirimlerden biri için arabirimi sorgulayabilirsiniz IDiaTable ):
Örnek
İlk işlevi olan ShowTableNames, oturumdaki tüm tabloların adlarını görüntüler. İkinci işlev olan GetTable, tüm tablolarda belirtilen arabirimi uygulayan bir tablo arar. Üçüncü işlev olan UseTable, işlevinin GetTable nasıl kullanılacağını gösterir.
Dekont
CDiaBSTR , bir sarmalayan ve örnekleme kapsam dışına çıktığında dizeyi serbest bırakma işlemini otomatik olarak işleyen bir BSTR sınıftır.
void ShowTableNames(IDiaSession *pSession)
{
CComPtr<IDiaEnumTables> pTables;
if ( FAILED( psession->getEnumTables( &pTables ) ) )
{
Fatal( "getEnumTables" );
}
CComPtr< IDiaTable > pTable;
while ( SUCCEEDED( hr = pTables->Next( 1, &pTable, &celt ) )
&& celt == 1 )
{
CDiaBSTR bstrTableName;
if ( pTable->get_name( &bstrTableName ) != 0 )
{
Fatal( "get_name" );
}
printf( "Found table: %ws\n", bstrTableName );
}
// Searches the list of all tables for a table that supports
// the specified interface. Use this function to obtain an
// enumeration interface.
HRESULT GetTable(IDiaSession* pSession,
REFIID iid,
void** ppUnk)
{
CComPtr<IDiaEnumTables> pEnumTables;
HRESULT hResult;
if (FAILED(pSession->getEnumTables(&pEnumTables)))
Fatal("getEnumTables");
CComPtr<IDiaTable> pTable;
ULONG celt = 0;
while (SUCCEEDED(hResult = pEnumTables->Next(1, &pTable, &celt)) &&
celt == 1)
{
if (pTable->QueryInterface(iid, (void**)ppUnk) == S_OK)
{
return S_OK;
}
pTable = NULL;
}
if (FAILED(hResult))
Fatal("EnumTables->Next");
return E_FAIL;
}
// This function shows how to use the GetTable function.
void UseTable(IDiaSession *pSession)
{
CComPtr<IDiaEnumSegments> pEnumSegments;
if (SUCCEEDED(GetTable(pSession, __uuidof(IDiaEnumSegments), &pEnumSegments)))
{
// Do something with pEnumSegments.
}
}
Gereksinimler
Üst bilgi: Dia2.h
Kitaplık: diaguids.lib
DLL: msdia80.dll