IDiaEnumDebugStreamData
Fornece acesso aos registros em um fluxo de dados de depuração.
Sintaxe
IDiaEnumDebugStreamData : IUnknown
Métodos na ordem VTable
A tabela a seguir mostra os métodos de IDiaEnumDebugStreamData
.
Método | Descrição |
---|---|
IDiaEnumDebugStreamData::get__NewEnum | Recupera a versão da Interface IEnumVARIANT desse enumerador. |
IDiaEnumDebugStreamData::get_Count | Recupera o número de registros no fluxo de dados de depuração. |
IDiaEnumDebugStreamData::get_name | Recupera o nome do fluxo de dados de depuração. |
IDiaEnumDebugStreamData::Item | Recupera o registro especificado. |
IDiaEnumDebugStreamData::Next | Recupera o número especificado de registros a partir da sequência enumerada. |
IDiaEnumDebugStreamData::Skip | Ignora um número especificado de registros na sequência enumerada. |
IDiaEnumDebugStreamData::Reset | Redefine a sequência enumerada para o início. |
IDiaEnumDebugStreamData::Clone | Cria um enumerador que contém a mesma sequência enumerada que a do enumerador atual. |
Comentários
Essa interface representa um fluxo de registros em um fluxo de dados de depuração. O tamanho e a interpretação de cada registro dependem do fluxo de dados do qual o registro vem. Essa interface fornece efetivamente acesso aos bytes de dados brutos no arquivo de símbolo.
Observações para chamadores
Chame os métodos IDiaEnumDebugStreams::Item ou IDiaEnumDebugStreams::Next para obter um objeto IDiaEnumDebugStreamData
.
Exemplo
Esse exemplo mostra como acessar um único fluxo de dados e seus registros.
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);
}
Requisitos
Cabeçalho: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia80.dll