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


Метод IRunnableObject::Run (objidl.h)

Принудительно выполняет объект.

Синтаксис

HRESULT Run(
  [in] LPBINDCTX pbc
);

Параметры

[in] pbc

Указатель на контекст привязки операции выполнения. См. раздел IBindCtx. Этот параметр может принимать значение NULL.

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

Этот метод может возвращать стандартные возвращаемые значения E_INVALIDARG, E_UNEXPECTED и S_OK.

Комментарии

Контейнеры вызывают IRunnableObject::Run , чтобы заставить их объекты перейти в состояние выполнения. Если объект еще не запущен, вызов Run может оказаться дорогостоящей операцией в течение нескольких секунд. Если объект уже запущен, этот метод не влияет на объект .

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

При вызове связанного объекта, преобразованного в новый класс с момента последней активации ссылки, IRunnableObject::Run может вернуть OLE_E_CLASSDIFF. В этом случае клиент должен вызвать IOleLink::BindToSource.

OleRun — это вспомогающая функция, которая удобно переупаковывает функции, предоставляемые IRunnableObject::Run. С выпуском OLE 2.01 реализация OleRun была изменена таким образом, что она вызывает QueryInterface, запрашивает IRunnableObject, а затем вызывает IRunnableObject::Run. Другими словами, интерфейс и вспомогательная функция можно использовать взаимозаменяемо.

Примечания для разработчиков

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

Внедренный объект должен содержать блокировку в своем контейнере внедрения, пока он находится в состоянии выполнения. Обработчик по умолчанию, предоставляемый OLE 2, блокирует контейнер внедрения от имени объектов, реализованных приложением объектов EXE. Объекты, реализованные приложением объектов DLL, должны явно блокировать свои внедренные контейнеры, что происходит путем вызова IOleClientSite::GetContainer для получения указателя на контейнер, а затем вызова IOleContainer::LockContainer для фактического размещения блокировки. Эта блокировка должна быть снята при вызове IOleObject::Close .

Требования

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

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

IRunnableObject

OleRun