IDiaEnumFrameData
énumère les différents éléments de données de frame contenus dans la source de données.
IDiaEnumFrameData : IUnknown
méthodes en commande de Vtable
Le tableau suivant répertorie les méthodes d' IDiaEnumFrameData.
Méthode |
Description |
---|---|
Récupère la version d' IEnumVARIANT Interface de cet énumérateur. |
|
Récupère le nombre d'éléments de données de frame. |
|
Extrait un élément de données de frame au moyen d'un index. |
|
Récupère un nombre spécifié d'éléments de données de frame de la séquence d'énumération. |
|
Ignore un nombre spécifié d'éléments de données de frame dans une séquence d'énumération. |
|
réinitialise une séquence d'énumération au début. |
|
crée un énumérateur qui contient le même état d'énumération que l'énumérateur actuel. |
|
Retourne un frame par l'adresse virtuelle associée (RVA). |
|
Retourne un frame par l'adresse virtuelle (VA). |
Notes
Remarques pour les appelants
obtenez cette interface de la méthode d' IDiaSession::getEnumTables . Consultez l'exemple pour plus de détails.
Exemple
cet exemple montre comment obtenir (la fonction d' GetEnumFrameData ) et utiliser (la fonction d' ShowFrameData ) l'interface d' IDiaEnumFrameData . Consultez l'interface d' IDiaFrameData pour obtenir un exemple d' PrintFrameData s'exécuter.
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
Référence
Autres ressources
Interfaces (Kit de développement logiciel de Debug Interface Access)