Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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