IDiaInjectedSource
Obtiene acceso al código fuente insertado almacenado en el origen de datos Debug Interface Access (DIA).
Sintaxis
IDiaInjectedSource : IUnknown
Métodos en orden de Vtable
En la tabla siguiente se muestran los métodos de IDiaInjectedSource
.
Método | Descripción |
---|---|
IDiaInjectedSource::get_crc | Recupera una comprobación de redundancia cíclica (CRC) calculada a partir de los bytes del código fuente. |
IDiaInjectedSource::get_length | Recupera el número de bytes de código. |
IDiaInjectedSource::get_filename | Recupera el nombre del archivo del código fuente. |
IDiaInjectedSource::get_objectFilename | Recupera el nombre del archivo de objeto al que se compiló el código fuente. |
IDiaInjectedSource::get_virtualFilename | Recupera el nombre proporcionado al código fuente que no es de archivo; es decir, código que se ha insertado. |
IDiaInjectedSource::get_sourceCompression | Recupera el indicador de la compresión de origen utilizada. |
IDiaInjectedSource::get_source | Recupera los bytes de código fuente. |
Comentarios
El código fuente insertado es texto que se inserta durante la compilación. Esto no significa el preprocesador #include
usado en C++.
Notas para autores de la llamada
Obtenga esta interfaz llamando a los métodos IDiaEnumInjectedSources::Item o IDiaEnumInjectedSources::Next. Consulte la interfaz IDiaEnumInjectedSources para obtener un ejemplo de obtención de la interfaz IDiaInjectedSource
.
Ejemplo
En este ejemplo se muestran los datos disponibles en la interfaz IDiaInjectedSource
. Para obtener un enfoque alternativo mediante la interfaz IDiaPropertyStorage, vea el ejemplo en la interfaz IDiaEnumInjectedSources.
void PrintInjectedSource(IDiaInjectedSource* pSource)
{
ULONGLONG codeLength = 0;
DWORD crc = 0;
DWORD compressionType = 0;
BSTR sourceFilename = NULL;
BSTR objectFilename = NULL;
BSTR virtualFilename = NULL;
std::cout << "Injected Source:" << std::endl;
if (pSource != NULL)
{
if (pSource->get_crc(&crc) == S_OK &&
pSource->get_sourceCompression(&compressionType) == S_OK &&
pSource->get_length(&codeLength) == S_OK)
{
wprintf(L" crc = %lu\n", crc);
wprintf(L" code length = %I64u\n",codeLength);
wprintf(L" compression type code = %lu\n", compressionType);
}
wprintf(L" source filename: ");
if (pSource->get_filename(&sourceFilename) == S_OK)
{
wprintf(L"%s", sourceFilename);
}
else
{
wprintf(L"<none>");
}
wprintf(L"\n");
wprintf(L" object filename: ");
if (pSource->get_objectFilename(&objectFilename) == S_OK)
{
wprintf(L"%s", objectFilename);
}
else
{
wprintf(L"<none>");
}
wprintf(L"\n");
wprintf(L" virtual filename: ");
if (pSource->get_virtualFilename(&virtualFilename) == S_OK)
{
wprintf(L"%s", virtualFilename);
}
else
{
wprintf(L"<none>");
}
wprintf(L"\n");
SysFreeString(sourceFilename);
SysFreeString(objectFilename);
SysFreeString(virtualFilename);
}
}
Requisitos
Encabezado: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia80.dll