다음을 통해 공유


IDiaInjectedSource

액세스 DIA 데이터 소스에 저장 된 소스 코드를 삽입 합니다.

IDiaInjectedSource : IUnknown

메서드에서 Vtable 순서

다음 표에서 메서드를 IDiaInjectedSource.

메서드

설명

IDiaInjectedSource::get_crc

소스 코드의 바이트 수를 계산 하는 순환 중복 검사 (CRC)를 검색 합니다.

IDiaInjectedSource::get_length

코드의 바이트 수를 검색합니다.

IDiaInjectedSource::get_filename

소스 파일 이름을 검색합니다.

IDiaInjectedSource::get_objectFilename

소스를 컴파일한 개체 파일 이름을 검색 합니다.

IDiaInjectedSource::get_virtualFilename

파일 이외의 소스 코드를 지정 하는 이름을 검색 합니다. 삽입 된 코드입니다.

IDiaInjectedSource::get_sourceCompression

표시기에 사용 되는 원본 압축을 검색 합니다.

IDiaInjectedSource::get_source

소스 코드 (바이트)를 검색합니다.

설명

삽입 한 소스를 컴파일하는 동안 삽입 된 텍스트입니다.이것은 전처리기 아닙니다 #include C++를 사용 합니다.

호출자에 대 한 참고 사항

이 인터페이스를 호출 하 여 얻을 IDiaEnumInjectedSources::Item 또는 IDiaEnumInjectedSources::Next 방법입니다.참조는 IDiaEnumInjectedSources 인터페이스를 가져오는 예제를 IDiaInjectedSource 인터페이스.

예제

사용 가능한 데이터를 표시 하는이 예제는 IDiaInjectedSource 인터페이스입니다.사용 하는 다른 방법에 대 한는 IDiaPropertyStorage 인터페이스를 참조 하는 있는 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_filename(&objectFilename) == S_OK)
        {
            wprintf(L"%s", objectFilename);
        }
        else
        {
            wprintf(L"<none>");
        }
        wprintf(L"\n");

        wprintf(L"  virtual filename: ");
        if (pSource->get_filename(&virtualFilename) == S_OK)
        {
            wprintf(L"%s", virtualFilename);
        }
        else
        {
            wprintf(L"<none>");
        }
        wprintf(L"\n");

        SysFreeString(sourceFilename);
        SysFreeString(objectFilename);
        SysFreeString(virtualFilename);
    }
}

요구 사항

헤더: Dia2.h

라이브러리: diaguids.lib

DLL: msdia80.dll

참고 항목

참조

IDiaEnumInjectedSources::Item

IDiaEnumInjectedSources::Next

IDiaEnumInjectedSources

기타 리소스

인터페이스(디버그 인터페이스 액세스 SDK)