Метод IOleObject::SetClientSite (oleidl.h)

Информирует внедренный объект о расположении отображения, называемом "клиентским сайтом" в контейнере.

Синтаксис

HRESULT SetClientSite(
  [in] IOleClientSite *pClientSite
);

Параметры

[in] pClientSite

Указатель на интерфейс IOleClientSite на клиентском сайте приложения контейнера.

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

Этот метод возвращает значение S_OK при успешном завершении. Другие возможные возвращаемые значения включают следующее.

Код возврата Описание
E_UNEXPECTED
Произошла непредвиденная ошибка.

Комментарии

В составном документе каждый внедренный объект имеет собственный клиентский сайт — место, где он отображается и через которое он получает сведения о своем хранилище, пользовательском интерфейсе и других ресурсах. IOleObject::SetClientSite — единственный метод, позволяющий внедренным объектам получить указатель на свой клиентский сайт.

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

Контейнер может уведомлять объект о своем клиентском сайте во время создания объекта или, впоследствии, при инициализации объекта.

При создании или загрузке объекта контейнер может передавать указатель на сайт клиента (вместе с другими аргументами) в одну из следующих вспомогательных функций: OleCreate, OleCreateFromFile, OleCreateFromData или OleLoad. Эти вспомогательные функции загружают обработчик объекта для нового объекта и вызывают IOleObject::SetClientSite от имени контейнера, прежде чем возвращать указатель на новый объект.

Передача указателя сайта клиента сообщает обработчику объектов о том, что клиентский сайт готов к обработке запросов. Если клиентский сайт вряд ли будет готов сразу после загрузки обработчика, может потребоваться, чтобы контейнер передал в вспомогательная функция пустой указатель сайта клиента. Указатель NULL указывает, что сайт клиента недоступен, и тем самым откладывает уведомление обработчика объекта клиентского сайта до инициализации объекта. В ответ вспомогающая функция возвращает указатель на объект , но при получении этого указателя контейнер должен вызвать IOleObject::SetClientSite в рамках инициализации нового объекта.

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

Реализация состоит из простого увеличения количества ссылок и сохранения указателя на клиентский сайт.

Требования

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

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

IOleClientSite

IOleObject

IOleObject::GetClientSite

OleCreate

OleCreateFromData

OleCreateFromFile

OleLoad