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


Метод IRunningObjectTable::GetObject (objidl.h)

Определяет, выполняется ли объект, определенный указанным моникером, и, если это так, извлекает указатель на этот объект.

Синтаксис

HRESULT GetObject(
  [in]  IMoniker *pmkObjectName,
  [out] IUnknown **ppunkObject
);

Параметры

[in] pmkObjectName

Указатель на интерфейс IMoniker в моникере.

[out] ppunkObject

Указатель на переменную указателя IUnknown , которая получает указатель интерфейса на выполняющийся объект. При успешном выполнении реализация вызывает AddRef для объекта ; вызов Release лежит на вызывающем объекте. Если объект не выполняется или возникает ошибка, реализация присваивает *ppunkObject значение NULL.

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

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

Код возврата Описание
S_OK
Указывает, что pmkObjectName было найдено в ROT и был получен указатель.
S_FALSE
В rot отсутствует запись для pmkObjectName или что идентифицируемый объект больше не выполняется (в этом случае запись отменяется).

Комментарии

Этот метод проверяет rot на наличие моникера, заданного параметром pmkObjectName. Если этот моникер ранее был зарегистрирован с помощью вызова IRunningObjectTable::Register, этот метод возвращает указатель, зарегистрированный в то время.

Примечания к вызывающим абонентам

Как правило, метод IRunningObjectTable::GetObject вызывается только в том случае, если вы пишете собственный класс моникера (то есть реализуете интерфейс IMoniker ). Обычно этот метод вызывается из реализации IMoniker::BindToObject.

Однако обратите внимание, что не все реализации IMoniker::BindToObject должны вызывать этот метод. Если вы ожидаете, что моникер имеет префикс (который обозначается не nullпараметром pmkToLeft для IMoniker::BindToObject), не следует проверка ROT. Причина этого заключается в том, что только полные моникеры регистрируются в ROT, и если ваш моникер имеет префикс, ваш моникер является частью составного и, следовательно, не завершен. Вместо этого моникер должен запрашивать службы у объекта, определяемого префиксом (например, контейнера объекта, определяемого вашим моникером).

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objidl.h

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

IMoniker::BindToObject

IRunningObjectTable