Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
É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