IDiaEnumDebugStreamData
Proporciona acceso a los registros de un flujo de datos de depuración.
Sintaxis
IDiaEnumDebugStreamData : IUnknown
Métodos en orden de Vtable
En la tabla siguiente se muestran los métodos de IDiaEnumDebugStreamData
.
Método | Descripción |
---|---|
IDiaEnumDebugStreamData::get__NewEnum | Recupera la versión de la interfaz IEnumVARIANT de este enumerador. |
IDiaEnumDebugStreamData::get_Count | Recupera el número de registros del flujo de datos de depuración. |
IDiaEnumDebugStreamData::get_name | Recupera el nombre del flujo de datos de depuración. |
IDiaEnumDebugStreamData::Item | Recupera el registro especificado. |
IDiaEnumDebugStreamData::Next | Recupera el número especificado de registros de la secuencia enumerada. |
IDiaEnumDebugStreamData::Skip | Omite un número especificado de registros de una secuencia enumerada. |
IDiaEnumDebugStreamData::Reset | Restablece la secuencia enumerada al principio. |
IDiaEnumDebugStreamData::Clone | Crea un enumerador que contiene la misma secuencia enumerada que el enumerador actual. |
Observaciones
Esta interfaz representa un flujo de registros en un flujo de datos de depuración. El tamaño y la interpretación de cada registro dependen del flujo de datos del que procede el registro. Esta interfaz proporciona de forma eficaz acceso a los bytes de datos sin procesar en el archivo de símbolos.
Notas para autores de la llamada
Llame a los métodos IDiaEnumDebugStreams::Item o IDiaEnumDebugStreams::Next para obtener un objeto IDiaEnumDebugStreamData
.
Ejemplo
En este ejemplo se muestra cómo acceder a un único flujo de datos y sus 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
Encabezado: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia80.dll