IDiaInjectedSource
Accede al codice sorgente inserito archiviato nell'origine dati DIA (Debug Interface Access).
Sintassi
IDiaInjectedSource : IUnknown
Metodi nell'ordine Vtable
Nella tabella seguente vengono illustrati i metodi di IDiaInjectedSource
.
metodo | Descrizione |
---|---|
IDiaInjectedSource::get_crc | Recupera un controllo di ridondanza ciclico calcolato dai byte del codice sorgente. |
IDiaInjectedSource::get_length | Recupera il numero di byte di codice. |
IDiaInjectedSource::get_filename | Recupera il nome del file per l'origine. |
IDiaInjectedSource::get_objectFilename | Recupera il nome del file dell'oggetto in cui è stata compilata l'origine. |
IDiaInjectedSource::get_virtualFilename | Recupera il nome specificato nel codice sorgente non file; ovvero il codice inserito. |
IDiaInjectedSource::get_sourceCompression | Recupera l'indicatore della compressione di origine utilizzata. |
IDiaInjectedSource::get_source | Recupera i byte del codice sorgente. |
Osservazioni:
L'origine inserita è testo inserito durante la compilazione. Questo non significa il preprocessore #include
usato in C++.
Note per i chiamanti
Ottenere questa interfaccia chiamando i metodi IDiaEnumInjectedSources::Item o IDiaEnumInjectedSources::Next . Per un esempio di recupero dell'interfacciaIDiaInjectedSource
, vedere l'interfaccia IDiaEnumInjectedSources.
Esempio
In questo esempio vengono visualizzati i dati disponibili dall'interfaccia IDiaInjectedSource
. Per un approccio alternativo che usa l'interfaccia IDiaPropertyStorage , vedere l'esempio nell'interfaccia 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);
}
}
Requisiti
Intestazione: Dia2.h
Libreria: diaguids.lib
DLL: msdia80.dll