Bagikan melalui


IDiaEnumDebugStreamData

Menyediakan akses ke catatan dalam aliran data debug.

Sintaks

IDiaEnumDebugStreamData : IUnknown

Metode dalam Urutan Vtable

Tabel berikut memperlihatkan metode IDiaEnumDebugStreamData.

Metode Deskripsi
IDiaEnumDebugStreamData::get__NewEnum Mengambil versi Antarmuka IEnumVARIANT dari enumerator ini.
IDiaEnumDebugStreamData::get_Count Mengambil jumlah rekaman dalam aliran data debug.
IDiaEnumDebugStreamData::get_name Mengambil nama aliran data debug.
IDiaEnumDebugStreamData::Item Mengambil rekaman yang ditentukan.
IDiaEnumDebugStreamData::Next Mengambil jumlah rekaman yang ditentukan dari urutan yang dijumlahkan.
IDiaEnumDebugStreamData::Skip Melompati jumlah rekaman tertentu dalam urutan yang dijumlahkan.
IDiaEnumDebugStreamData::Reset Mengatur ulang urutan yang dijumlahkan ke awal.
IDiaEnumDebugStreamData::Clone Membuat enumerator yang berisi urutan enumerasi yang sama dengan enumerator saat ini.

Keterangan

Antarmuka ini mewakili aliran rekaman dalam aliran data debug. Ukuran dan interpretasi setiap rekaman tergantung pada aliran data tempat rekaman berasal. Antarmuka ini secara efektif menyediakan akses ke byte data mentah dalam file simbol.

Catatan untuk Penelepon

Panggil IDiaEnumDebug Aliran::Item atau IDiaEnumDebug Aliran::Metode berikutnya untuk mendapatkan IDiaEnumDebugStreamData objek.

Contoh

Contoh ini menunjukkan cara mengakses aliran data tunggal dan rekamannya.

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);
}

Persyaratan

Header: Dia2.h

Library: diaguids.lib

DLL: msdia80.dll

Baca juga