Метод IRunningObjectTable::GetObject (objidl.h)
Определяет, выполняется ли объект, определенный указанным моникером, и, если это так, извлекает указатель на этот объект.
Синтаксис
HRESULT GetObject(
[in] IMoniker *pmkObjectName,
[out] IUnknown **ppunkObject
);
Параметры
[in] pmkObjectName
Указатель на интерфейс IMoniker в моникере.
[out] ppunkObject
Указатель на переменную указателя IUnknown , которая получает указатель интерфейса на выполняющийся объект. При успешном выполнении реализация вызывает AddRef для объекта ; вызов Release лежит на вызывающем объекте. Если объект не выполняется или возникает ошибка, реализация присваивает *ppunkObject значение NULL.
Возвращаемое значение
Этот метод может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Указывает, что pmkObjectName было найдено в ROT и был получен указатель. |
|
В 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 |