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);
}