Поделиться через


IDiaSession::symbolById

Извлекает символ по уникальному идентификатору.

Синтаксис

HRESULT symbolById (
    DWORD        id,
    IDiaSymbol** ppSymbol
);

Параметры

id

[in] Уникальный идентификатор.

ppSymbol

[out] Возвращает объект IDiaSymbol , представляющий полученный символ.

Возвращаемое значение

В случае успешного выполнения возвращается S_OK; в противном случае возвращается код ошибки.

Замечания

Указанный идентификатор — это уникальное значение, используемое внутренним пакетом SDK DIA, чтобы сделать все символы уникальными.

Этот метод можно использовать, например, для получения символа, представляющего тип другого символа (см. пример).

Пример

В этом примере извлекается идентификатор IDiaSymbol , представляющий тип другого символа. В этом примере показано, как использовать symbolById метод в сеансе. Более простой подход заключается в вызове метода IDiaSymbol::get_type для получения символа типа напрямую.

IDiaSymbol *GetSymbolType(IDiaSymbol *pSymbol, IDiaSession *pSession)
{
    IDiaSymbol *pTypeSymbol = NULL;
    if (pSymbol != NULL && pSession != NULL)
    {
        DWORD symbolTypeId;
        pSymbol->get_typeId(&symbolTypeId);
        pSession->symbolById(symbolTypeId, &pTypeSymbol);
    }
    return(pTypeSymbol);
}

См. также