Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hiermit wird eine DIA-Datenquellentabelle aufgelistet.
Syntax
IDiaTable : IEnumUnknown
Methoden in Vtable-Reihenfolge
In der folgenden Tabelle sind die Methoden von IDiaTable
aufgeführt.
Methode | BESCHREIBUNG |
---|---|
IDiaTable::get__NewEnum | Hiermit wird die Version der IEnumVARIANT-Schnittstelle dieses Enumerators abgerufen. |
IDiaTable::get_name | Hiermit wird der Name der Tabelle abgerufen. |
IDiaTable::get_Count | Hiermit wird die Anzahl der Elemente in der Tabelle abgerufen. |
IDiaTable::Item | Hiermit wird ein Verweis auf einen bestimmten Eintragsindex abgerufen. |
Bemerkungen
Diese Schnittstelle implementiert die IEnumUnknown
-Enumerationsmethoden im Microsoft.VisualStudio.OLE.Interop-Namespace. Die IEnumUnknown
-Enumerationsschnittstelle ist wesentlich effizienter für das Durchlaufen der Tabelleninhalte als die Methoden IDiaTable::get_Count und IDiaTable::Item.
Die Interpretation der IUnknown
-Schnittstelle, die entweder von der IDiaTable::Item
-Methode oder der Next
-Methode (im Microsoft.VisualStudio.OLE.Interop-Namespace) zurückgegeben wird, hängt vom Typ der Tabelle ab. Wenn die IDiaTable
-Schnittstelle beispielsweise eine Liste der eingefügten Quellen darstellt, sollte die IUnknown
-Schnittstelle für die IDiaInjectedSource-Schnittstelle abgefragt werden.
Hinweise für Aufrufer
Rufen Sie diese Schnittstelle ab, indem Sie die Methode IDiaEnumTables::Item oder die Methode IDiaEnumTables::Next aufrufen.
Die folgenden Schnittstellen werden mit der IDiaTable
-Schnittstelle implementiert (d. h., Sie können die IDiaTable
-Schnittstelle für eine der folgenden Schnittstellen abfragen):
Beispiel
Die erste Funktion (ShowTableNames
) zeigt die Namen aller Tabellen in der Sitzung an. Die zweite Funktion (GetTable
) durchsucht alle Tabellen nach einer Tabelle, die eine angegebene Schnittstelle implementiert. Die dritte Funktion (UseTable
) zeigt, wie die GetTable
-Funktion verwendet wird.
Hinweis
CDiaBSTR
ist eine Klasse, die ein BSTR
-Element umschließt und automatisch die Freigabe der Zeichenfolge verarbeitet, wenn die Instanziierung den Gültigkeitsbereich überschreitet.
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.
}
}
Anforderungen
Header: Dia2.h
Bibliothek: diaguids.lib
DLL: msdia80.dll