提供偵錯資料流中記錄的存取權。
語法
IDiaEnumDebugStreamData : IUnknown
依照 Vtable 順序的方法
下表顯示 IDiaEnumDebugStreamData 方法。
| 方法 | 描述 |
|---|---|
| IDiaEnumDebugStreamData::get__NewEnum | 擷取此列舉值的 IEnumVARIANT 介面版本。 |
| IDiaEnumDebugStreamData::get_Count | 擷取偵錯資料流中的記錄數。 |
| IDiaEnumDebugStreamData::get_name | 擷取偵錯資料流的名稱。 |
| IDiaEnumDebugStreamData::Item | 擷取指定的記錄。 |
| IDiaEnumDebugStreamData::Next | 擷取列舉序列的指定記錄數目。 |
| IDiaEnumDebugStreamData::Skip | 跳過列舉序列中的指定記錄數目。 |
| IDiaEnumDebugStreamData::Reset | 將列舉序列重設為開頭。 |
| IDiaEnumDebugStreamData::Clone | 建立一個列舉值,其中包含與目前列舉程式相同的列舉序列。 |
備註
這個介面代表偵錯資料流程中的記錄資料流程。 每個記錄的大小和解譯取決於記錄的來來源資料流。 這個介面可有效地存取符號檔中的原始資料位元組。
呼叫端注意事項
呼叫 IDiaEnumDebugStreams::Item 或 IDiaEnumDebugStreams::Next 方法來取得 IDiaEnumDebugStreamData 物件。
範例
此範例示範如何存取單一資料流程及其記錄。
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);
}
需求
標頭: Dia2.h
程式庫: diaguids.lib
DLL: msdia80.dll