IDiaEnumFrameData
Note
This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
Enumerates the various frame data elements contained in the data source.
Syntax
IDiaEnumFrameData : IUnknown
Methods in Vtable Order
The following table shows the methods of IDiaEnumFrameData
.
Method | Description |
---|---|
IDiaEnumFrameData::get__NewEnum | Retrieves the IEnumVARIANT Interface version of this enumerator. |
IDiaEnumFrameData::get_Count | Retrieves the number of frame data elements. |
IDiaEnumFrameData::Item | Retrieves a frame data element by means of an index. |
IDiaEnumFrameData::Next | Retrieves a specified number of frame data elements in the enumeration sequence. |
IDiaEnumFrameData::Skip | Skips a specified number of frame data elements in an enumeration sequence. |
IDiaEnumFrameData::Reset | Resets an enumeration sequence to the beginning. |
IDiaEnumFrameData::Clone | Creates an enumerator that contains the same enumeration state as the current enumerator. |
IDiaEnumFrameData::frameByRVA | Returns a frame by relative virtual address (RVA). |
IDiaEnumFrameData::frameByVA | Returns a frame by virtual address (VA). |
Remarks
Notes for Callers
Obtain this interface from the IDiaSession::getEnumTables method. See the example for details.
Example
This example shows how to obtain (the GetEnumFrameData
function) and use (the ShowFrameData
function) the IDiaEnumFrameData
interface. See the IDiaFrameData interface for an example of the PrintFrameData
function.
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();
}
}
Requirements
Header: Dia2.h
Library: diaguids.lib
DLL: msdia80.dll
See Also
Interfaces (Debug Interface Access SDK)
IDiaSession::getEnumTables
IDiaFrameData