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


Метод IModelObject::GetRawReference (dbgmodel.h)

Метод GetRawReference находит собственную конструкцию в заданном объекте и возвращает ссылку на нее. Такой конструкцией может быть поле, базовый класс, поле в базовом классе, функция-член и т. д. Важно отличать возвращаемую здесь ссылку (объект типа ObjectTargetObjectReference) от ссылки на язык (например, & C++ или ссылку на стиль && ).

Синтаксис

HRESULT GetRawReference(
  SymbolKind                  kind,
  PCWSTR                      name,
  ULONG                       searchFlags,
  _COM_Errorptr_ IModelObject **object
);

Параметры

kind

Указывает тип собственного символа для получения (например, базовый класс или элемент данных).

name

Имя собственной конструкции для получения.

searchFlags

Необязательный набор флагов, указывающий поведение поиска для собственной конструкции.

object

Сюда будет возвращен объект IModelObject , представляющий извлекаемую собственную конструкцию. Обратите внимание, что в некоторых случаях в этом аргументе могут возвращаться расширенные сведения об ошибке, даже если HRESULT указывает на сбой.

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

Этот метод возвращает HRESULT, который указывает на успех или сбой. Возвращаемые значения E_BOUNDS (или E_NOT_SET в некоторых случаях) указывают, что не удалось найти поле.

Комментарии

Образец кода

ComPtr<IModelObject> spMessage; /* get a tagMSG */

ComPtr<IModelObject> spMsgIdRef;
if (SUCCEEDED(spMessage->GetRawReference(SymbolField, L"message", RawSearchNone, &spMsgIdRef)))
{
    // spMsgIdRef is an ObjectTargetObjectReference.  GetLocation/GetTypeInfo/GetTargetInfo 
    // will return as they would for the value. spMsgIdRef can be passed to Dereference or to 
    // the EE to assign a value, etc...
    ComPtr<IModelObject> spMsgId;
    if (SUCCEEDED(spMsgIdRef->Dereference(&spMsgId)))
    {
        // spMsgId contains the message number.  Unbox with GetIntrinsicValueAs.
    }
}

Требования

Требование Значение
Заголовок dbgmodel.h

См. также раздел

Интерфейс IModelObject