IDiaEnumDebugStreamData
Fornisce l'accesso ai record in un flusso di dati di debug.
Sintassi
IDiaEnumDebugStreamData : IUnknown
Metodi nell'ordine Vtable
Nella tabella seguente vengono illustrati i metodi di IDiaEnumDebugStreamData
.
metodo | Descrizione |
---|---|
IDiaEnumDebugStreamData::get__NewEnum | Recupera la versione dell'interfaccia IEnumVARIANT di questo enumeratore. |
IDiaEnumDebugStreamData::get_Count | Recupera il numero di record nel flusso di dati di debug. |
IDiaEnumDebugStreamData::get_name | Recupera il nome del flusso di dati di debug. |
IDiaEnumDebugStreamData::Item | Recupera il record specificato. |
IDiaEnumDebugStreamData::Next | Recupera il numero specificato di record dalla sequenza enumerata. |
IDiaEnumDebugStreamData::Skip | Ignora un numero specificato di record in una sequenza enumerata. |
IDiaEnumDebugStreamData::Reset | Reimposta la sequenza enumerata all'inizio. |
IDiaEnumDebugStreamData::Clone | Crea un enumeratore che contiene la stessa sequenza enumerata dell'enumeratore corrente. |
Osservazioni:
Questa interfaccia rappresenta un flusso di record in un flusso di dati di debug. Le dimensioni e l'interpretazione di ogni record dipendono dal flusso di dati da cui proviene il record. Questa interfaccia fornisce in modo efficace l'accesso ai byte di dati non elaborati nel file di simboli.
Note per i chiamanti
Chiamare i metodi IDiaEnumDebug Flussi::Item o IDiaEnumDebug Flussi::Next per ottenere un IDiaEnumDebugStreamData
oggetto.
Esempio
In questo esempio viene illustrato come accedere a un singolo flusso di dati e ai relativi record.
void PrintStreamData(IDiaEnumDebugStreamData* pStream)
{
BSTR wszName;
LONG dwElem;
ULONG celt = 0;
DWORD cbData;
DWORD cbTotal = 0;
BYTE data[1024];
if(pStream->get_name(&wszName) != S_OK)
{
wprintf_s(L"ERROR - PrintStreamData() get_name\n");
}
else
{
wprintf_s(L"Stream: %s", wszName);
SysFreeString(wszName);
}
if(pStream->get_Count(&dwElem) != S_OK)
{
wprintf(L"ERROR - PrintStreamData() get_Count\n");
}
else
{
wprintf(L"(%d)\n", dwElem);
}
while(pStream->Next(1, sizeof(data), &cbData, (BYTE *)&data, &celt) == S_OK)
{
DWORD i;
for (i = 0; i < cbData; i++)
{
wprintf(L"%02X ", data[i]);
if(i && i % 8 == 7 && i+1 < cbData)
{
wprintf(L"- ");
}
}
wprintf(L"| ");
for(i = 0; i < cbData; i++)
{
wprintf(L"%c", iswprint(data[i]) ? data[i] : '.');
}
wprintf(L"\n");
cbTotal += cbData;
}
wprintf(L"Summary :\n\tSizeof(Elem) = %d\n\tNo of Elems = %d\n\n",
cbTotal/dwElem, dwElem);
}
Requisiti
Intestazione: Dia2.h
Libreria: diaguids.lib
DLL: msdia80.dll