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


Функция OleCreate (ole.h)

Создает внедренный объект, идентифицируемый идентификатором CLSID. Обычно он используется для реализации пункта меню, который позволяет конечному пользователю вставить новый объект.

Синтаксис

OLESTATUS OleCreate(
  LPCSTR        unnamedParam1,
  LPOLECLIENT   unnamedParam2,
  LPCSTR        unnamedParam3,
  LHCLIENTDOC   unnamedParam4,
  LPCSTR        unnamedParam5,
  LPOLEOBJECT   *unnamedParam6,
  OLEOPT_RENDER unnamedParam7,
  OLECLIPFORMAT unnamedParam8
);

Параметры

unnamedParam1

TBD

unnamedParam2

TBD

unnamedParam3

TBD

unnamedParam4

TBD

unnamedParam5

TBD

unnamedParam6

TBD

unnamedParam7

TBD

unnamedParam8

TBD

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

Эта функция возвращает S_OK об успешном выполнении и поддерживает стандартное возвращаемое значение E_OUTOFMEMORY.

Код возврата Описание
E_OUTOFMEMORY
Недостаточно памяти для операции.

Комментарии

Функция OleCreate создает новый внедренный объект и обычно вызывается для реализации пункта меню Вставка нового объекта. При возврате OleCreate созданный объект будет пустым (не содержит данных), если только не OLERENDER_DRAW или OLERENDER_FORMAT renderopt и не загружен. Контейнеры обычно вызывают функцию OleRun или IOleObject::D oVerb , чтобы отобразить объект для первоначального редактирования.

Параметр rclsid указывает CLSID запрошенного объекта. Идентификаторы CLSID зарегистрированных объектов хранятся в системном реестре. Когда пользователь приложения выбирает команду Вставить объект, поле выбора позволяет пользователю выбрать нужный тип объекта из реестра. Если для реализации элемента меню Вставка объекта используется OleCreate , идентификатор CLSID, связанный с выбранным элементом, назначается параметру rclsid объекта OleCreate.

Параметр riid указывает интерфейс, который клиент будет использовать для взаимодействия с новым объектом. После успешного возврата параметр ppvObject содержит указатель на запрошенный интерфейс.

Кэш созданного объекта содержит сведения, которые позволяют представление автономного объекта при открытии контейнера. Сведения о том, что следует кэшировать, передаются в значениях renderopt и pFormatetc . При возврате OleCreate кэш созданного объекта не обязательно заполняется. Вместо этого кэш заполняется при первом переходе объекта в состояние выполнения. Вызывающий объект может добавить дополнительный элемент управления кэшем с помощью вызова IOleCache::Cache после возврата OleCreate и перед запуском объекта. Если renderopt OLERENDER_DRAW или OLERENDER_FORMAT, OleCreate требует, чтобы объект поддерживал интерфейс IOleCache . Такого требования для любого другого значения renderopt не существует.

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

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ole.h (включая Ole2.h)
Библиотека Ole32.lib
DLL Ole32.dll

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

FORMATETC

IOleClientSite

IOleObject

OLERENDER