IDiaEnumDebugStreamData
Zapewnia dostęp do rekordów w strumieniu danych debugowania.
Składnia
IDiaEnumDebugStreamData : IUnknown
Metody w tabeli Vtable Order
W poniższej tabeli przedstawiono metody .IDiaEnumDebugStreamData
Metoda | opis |
---|---|
IDiaEnumDebugStreamData::get__NewEnum | Pobiera wersję interfejsu IEnumVARIANT tego modułu wyliczającego. |
IDiaEnumDebugStreamData::get_Count | Pobiera liczbę rekordów w strumieniu danych debugowania. |
IDiaEnumDebugStreamData::get_name | Pobiera nazwę strumienia danych debugowania. |
IDiaEnumDebugStreamData::Item | Pobiera określony rekord. |
IDiaEnumDebugStreamData::Next | Pobiera określoną liczbę rekordów z wyliczonej sekwencji. |
IDiaEnumDebugStreamData::Skip | Pomija określoną liczbę rekordów w wyliczonej sekwencji. |
IDiaEnumDebugStreamData::Reset | Resetuje wyliczona sekwencję na początku. |
IDiaEnumDebugStreamData::Clone | Tworzy moduł wyliczający zawierający tę samą sekwencję wyliczaną co bieżący moduł wyliczający. |
Uwagi
Ten interfejs reprezentuje strumień rekordów w strumieniu danych debugowania. Rozmiar i interpretacja każdego rekordu zależy od strumienia danych, z których pochodzi rekord. Ten interfejs skutecznie zapewnia dostęp do nieprzetworzonych bajtów danych w pliku symboli.
Uwagi dotyczące wywoływania
Wywołaj metody IDiaEnumDebug Strumienie::Item lub IDiaEnumDebug Strumienie::Next, aby uzyskać IDiaEnumDebugStreamData
obiekt.
Przykład
W tym przykładzie pokazano, jak uzyskać dostęp do pojedynczego strumienia danych i jego rekordów.
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);
}
Wymagania
Nagłówek: Dia2.h
Biblioteka: diaguids.lib
BIBLIOTEKA DLL: msdia80.dll