Функция OleCreateStaticFromData (ole2.h)
Создает статический объект, содержащий только представление без собственных данных из объекта передачи данных.
Синтаксис
HRESULT OleCreateStaticFromData(
[in] LPDATAOBJECT pSrcDataObj,
[in] REFIID iid,
[in] DWORD renderopt,
[in] LPFORMATETC pFormatEtc,
[in] LPOLECLIENTSITE pClientSite,
[in] LPSTORAGE pStg,
[out] LPVOID *ppvObj
);
Параметры
[in] pSrcDataObj
Указатель на интерфейс IDataObject на объекте передачи данных, который содержит данные, из которых будет создан объект.
[in] iid
Ссылка на идентификатор интерфейса, с которым вызывающий объект будет взаимодействовать с новым объектом (обычно IID_IOleObject, определенный в заголовках OLE в качестве идентификатора интерфейса для IOleObject).
[in] renderopt
Значение из перечисления OLERENDER , указывающее возможности локально кэшированного рисования или извлечения данных, которые нужны контейнеру во вновь созданном компоненте. Передача параметров отрисовки OLERENDER_NONE или OLERENDER_ASIS в эту функцию является ошибкой.
[in] pFormatEtc
В зависимости от того, какой из флагов OLERENDER используется в качестве значения renderopt, может быть указателем на одно из значений перечисления FORMATETC . Сведения об ограничениях см. в перечислении OLERENDER .
[in] pClientSite
Указатель на экземпляр IOleClientSite, основной интерфейс, через который объект запрашивает службы из своего контейнера. Этот параметр может принимать значение NULL.
[in] pStg
Указатель на интерфейс IStorage для хранения объекта. Этот параметр не может иметь значение NULL.
[out] ppvObj
Адрес переменной указателя, получающей указатель интерфейса, запрошенный в riid. После успешного возврата *ppvObj содержит запрошенный указатель интерфейса на вновь созданный объект.
Возвращаемое значение
Эта функция возвращает S_OK при успешном выполнении.
Комментарии
Функция OleCreateStaticFromData может преобразовать любой объект, если она предоставляет интерфейс IDataObject , в статический объект. Это полезно при реализации параметра Преобразовать в рисунок для связывания или внедрения OLE.
Статические объекты можно создавать, только если источник поддерживает один из форматов буфера обмена, отображаемых OLE: CF_METAFILEPICT, CF_DIB или CF_ BITMAP и CF_ENHMETAFILE.
Вы также можете вызвать OleCreateStaticFromData , чтобы вставить статический объект из буфера обмена. Чтобы определить, является ли объект статическим, вызовите функцию OleQueryCreateFromData , которая возвращает OLE_S_STATIC, если присутствует один из CF_METAFILEPICT, CF_DIB, CF_BITMAP или CF_ENHMETAFILE, а формат OLE отсутствует. Это означает, что для создания объекта следует вызывать OleCreateStaticFromData , а не функцию OleCreateFromData .
Новый статический объект имеет класс CLSID_StaticMetafile в случае CF_METAFILEPICT, CLSID_StaticDib в случае CF_DIB или CF_BITMAP или CLSID_Picture_EnhMetafile в случае CF_ENHMETAFILE. Статический объект задает OLEMISC_STATIC и OLE_CANTLINKINSIDE биты, возвращаемые из IOleObject::GetMiscStatus. Статический объект будет иметь аспект DVASPECT_CONTENT и LINDEX -1.
PSrcDataObject по-прежнему действителен после возврата OleCreateStaticFromData. Ответственность за освобождение pSrcDataObject лежит на вызывающем объекте. OLE не освобождает его.
В статическом объекте не может быть более одного потока представления.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ole2.h |
Библиотека | Ole32.lib |
DLL | Ole32.dll |