IDiaTableIDiaTable

Listet eine Dia-Datenquellen Tabelle auf.Enumerates a DIA data source table.

SyntaxSyntax

IDiaTable : IEnumUnknown

Methoden in Vtable-ReihenfolgeMethods in Vtable Order

In der folgenden Tabelle sind die Methoden von IDiaTable aufgeführt.The following table shows the methods of IDiaTable.

MethodeMethod BeschreibungDescription
IDiaTable::get__NewEnumIDiaTable::get__NewEnum Ruft die Version der IEnumVARIANT-Schnittstelle dieses Enumerators ab.Retrieves the IEnumVARIANT Interface version of this enumerator.
IDiaTable::get_nameIDiaTable::get_name Ruft den Namen der Tabelle ab.Retrieves the name of the table.
IDiaTable::get_CountIDiaTable::get_Count Ruft die Anzahl der Elemente in der Tabelle ab.Retrieves the number of items in the table.
IDiaTable::ItemIDiaTable::Item Ruft einen Verweis auf einen bestimmten Eintrags Index ab.Retrieves a reference to a particular entry index.

HinweiseRemarks

Diese Schnittstelle implementiert die IEnumUnknown Enumerationsmethoden im Microsoft. VisualStudio. OLE. Interop-Namespace.This interface implements the IEnumUnknown enumeration methods in the Microsoft.VisualStudio.OLE.Interop namespace. Die IEnumUnknown Enumerationsschnittstelle ist viel effizienter zum Durchlaufen der Tabelleninhalte als die idisierbare:: get_Count -Methode und die iditable:: Item -Methode.The IEnumUnknown enumeration interface is much more efficient for iterating over the table contents than the IDiaTable::get_Count and IDiaTable::Item methods.

Die Interpretation der IUnknown-Schnittstelle, die entweder von der IDiaTable::Item-Methode oder der Next-Methode (im Microsoft. VisualStudio. OLE. Interop-Namespace) zurückgegeben wurde, hängt vom Typ der Tabelle ab.The interpretation of the IUnknown interface returned from either the IDiaTable::Item method or the Next method (in the Microsoft.VisualStudio.OLE.Interop namespace) is dependent on the type of table. Wenn die IDiaTable-Schnittstelle z. b. eine Liste von injizierten Quellen darstellt, sollte die IUnknown-Schnittstelle für die idiainjetedsource -Schnittstelle abgefragt werden.For example, if the IDiaTable interface represents a list of injected sources, the IUnknown interface should be queried for the IDiaInjectedSource interface.

Hinweise für AufruferNotes for Callers

Rufen Sie diese Schnittstelle durch Aufrufen der IDiaEnumTables:: Item -Methode oder der IDiaEnumTables:: Next -Methode ab.Obtain this interface by calling the IDiaEnumTables::Item or IDiaEnumTables::Next methods.

Die folgenden Schnittstellen werden mit der IDiaTable-Schnittstelle implementiert (d. h., Sie können die IDiaTable-Schnittstelle für eine der folgenden Schnittstellen Abfragen):The following interfaces are implemented with the IDiaTable interface (that is, you can query the IDiaTable interface for one of the following interfaces):

BeispielExample

Mit der ersten Funktion (ShowTableNames) werden die Namen aller Tabellen in der Sitzung angezeigt.The first function, ShowTableNames, displays the names of all the tables in the session. Die zweite Funktion, GetTable, durchsucht alle Tabellen nach einer Tabelle, die eine angegebene Schnittstelle implementiert.The second function, GetTable, searches all of the tables for a table that implements a specified interface. Die dritte Funktion, UseTable, zeigt, wie Sie die GetTable-Funktion verwenden.The third function, UseTable, shows how to use the GetTable function.

Note

CDiaBSTR ist eine Klasse, die eine BSTR umschließt und die Freigabe der Zeichenfolge automatisch verarbeitet, wenn die Instanziierung den Gültigkeitsbereich verlässt.CDiaBSTR is a class that wraps a BSTR and automatically handles freeing the string when the instantiation goes out of scope.

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.
    }
}

AnforderungenRequirements

Header: Dia2.hHeader: Dia2.h

Bibliothek: diaguids. libLibrary: diaguids.lib

DLL: msdia80.dllDLL: msdia80.dll

Siehe auchSee also