IDiaEnumFrameData

Énumère les différents éléments de donnée de frame contenus dans la source de données.

Syntaxe

IDiaEnumFrameData : IUnknown

Méthodes dans l'ordre Vtable

Le tableau suivant présente les méthodes de IDiaEnumFrameData.

Méthode Description
IDiaEnumFrameData::get__NewEnum Récupère la version IEnumVARIANT Interface de cet énumérateur.
IDiaEnumFrameData::get_Count Récupère le nombre d’éléments de données frame.
IDiaEnumFrameData::Item Récupère un élément de données frame au moyen d’un index.
IDiaEnumFrameData::Next Récupère un nombre spécifié d’éléments de données frame dans la séquence d’énumération.
IDiaEnumFrameData::Skip Ignore un nombre spécifié d’éléments de données du frame dans la séquence d’énumération.
IDiaEnumFrameData::Reset Réinitialise une séquence d'énumération.
IDiaEnumFrameData::Clone Crée un énumérateur qui contient le même état d’énumération que l’énumérateur actuel.
IDiaEnumFrameData::frameByRVA Renvoie une image par adresse virtuelle relative (RVA).
IDiaEnumFrameData::frameByVA Retourne un frame par adresse virtuelle (VA).

Notes

Remarques pour les appelants

Obtenez cette interface à partir de la méthode IDiaSession::getEnumTables . Pour plus de détails, voir les exemples.

Exemple

Cet exemple montre comment obtenir (la fonction GetEnumFrameData) et utiliser (la fonction ShowFrameData) l’interface IDiaEnumFrameData. Pour obtenir un exemple de la fonction PrintFrameData, consultez l’interface IDiaFrameData.


      IDiaEnumFrameData* GetEnumFrameData(IDiaSession *pSession)
{
    IDiaEnumFrameData* pUnknown    = NULL;
    REFIID             iid         = __uuidof(IDiaEnumFrameData);
    IDiaEnumTables*    pEnumTables = NULL;
    IDiaTable*         pTable      = NULL;
    ULONG              celt        = 0;

    if (pSession->getEnumTables(&pEnumTables) != S_OK)
    {
        wprintf(L"ERROR - GetTable() getEnumTables\n");
        return NULL;
    }
    while (pEnumTables->Next(1, &pTable, &celt) == S_OK && celt == 1)
    {
        // There is only one table that matches the given iid
        HRESULT hr = pTable->QueryInterface(iid, (void**)&pUnknown);
        pTable->Release();
        if (hr == S_OK)
        {
            break;
        }
    }
    pEnumTables->Release();
    return pUnknown;
}

void ShowFrameData(IDiaSession *pSession)
{
    IDiaEnumFrameData* pEnumFrameData = GetEnumFrameData(pSession);;

    if (pEnumFrameData != NULL)
    {
        IDiaFrameData* pFrameData;
        ULONG celt = 0;

        while(pEnumFrameData->Next(1, &pFrameData, &celt) == S_OK &&
              celt == 1)
        {
            PrintFrameData(pFrameData);
            pFrameData->Release();
        }
        pEnumFrameData->Release();
    }
}

Configuration requise

En-tête : Dia2.h

Bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi