Метод IOleCache::Cache (oleidl.h)
Указывает формат и другие данные для кэширования во внедренном объекте.
Синтаксис
HRESULT Cache(
[in] FORMATETC *pformatetc,
[in] DWORD advf,
[out] DWORD *pdwConnection
);
Параметры
[in] pformatetc
Указатель на структуру FORMATETC , которая указывает формат и другие данные для кэширования. Кэширование представлений задается путем передачи нулевого формата буфера обмена в pformatetc.
[in] advf
Группа флагов, управляющих кэшированием. Возможные значения поступают из перечисления ADVF . При использовании в этом контексте для кэша эти значения имеют определенные значения, которые описаны в разделе Примечания. Более подробное описание см. в перечислении ADVF .
[out] pdwConnection
Указатель на переменную, которая получает идентификатор этого соединения, который позже можно использовать для отключения кэширования (путем передачи его в IOleCache::Uncache). Если это значение равно 0, подключение не установлено. В реализации, предоставляемой OLE, для идентификаторов подключений используются ненулевое число.
Возвращаемое значение
Этот метод возвращает значение S_OK при успешном завершении. Другие возможные возвращаемые значения включают следующее.
Код возврата | Описание |
---|---|
|
Указанные аргументы pformatetc или advf недопустимы. |
|
Произошла непредвиденная ошибка. |
|
Недостаточно памяти, доступной для операции. |
|
Кэш был создан, но объектное приложение не поддерживает указанный формат. Создание кэша выполняется успешно, даже если формат не поддерживается, что позволяет вызывающему объекту заполнить кэш. Если же вызывающей объекту не нужно хранить кэш, вызовите IOleCache::Uncache. |
|
Кэш уже существует для FORMATETC, переданного в IOleCache::Uncache. В этом случае новые флаги рекомендаций назначаются кэшу, и возвращается ранее назначенный идентификатор подключения. |
|
Недопустимое значение для pformatetc-lindex>; в настоящее время поддерживается только -1. |
|
Недопустимое значение для pformatetc-tymed>. |
|
Недопустимое значение для pformatetc-dwAspect>. |
|
Недопустимое значение для pformatetc-cfFormat>. |
|
Хранилище кэша не инициализировано. |
|
Недопустимое значение для pformatetc-->ptd. |
|
Кэш — для статического объекта, и у него уже есть узел кэша. |
Комментарии
IOleCache::Cache может указывать кэширование данных или кэширование представления (презентации). Чтобы указать кэширование данных, в pformatetc необходимо передать допустимый формат данных. Для кэширования представлений сам объект кэша принимает решение о формате кэширования, поэтому вызывающий объект передает нулевой формат данных в pformatetc следующим образом:
pFormatetc->cfFormat == 0
Обработчик пользовательских объектов может отказаться от хранения данных в заданном формате. Вместо этого он может синтезировать его по запросу по запросу.
Значение advf указывает элемент перечисления ADVF . Если в этом контексте используется одно из этих значений (или сочетание or'd из нескольких значений), эти значения означают следующее.
Значение ADVF | Описание |
---|---|
ADVF_NODATA | Кэш не должен обновляться с помощью изменений, внесенных в запущенный объект. Вместо этого контейнер обновит кэш, явно вызвав IOleCache::SetData, IDataObject::SetData или IOleCache2::UpdateCache. Этот флаг обычно используется при кэшировании знакового аспекта объекта. |
ADVF_ONLYONCE | Обновите кэш только один раз. После завершения обновления консультативное подключение между объектом и кэшем отключается. Исходный объект для соединения рекомендаций вызывает метод Release . |
ADVF_PRIMEFIRST | Объект не ожидает изменения данных или представления перед обновлением кэша. Или с ADVF_ONLYONCE этот параметр предоставляет асинхронный вызов IDataObject::GetData . |
ADVFCACHE_NOHANDLER | Синоним для ADVFCACHE_FORCEBUILTIN. |
ADVFCACHE_FORCEBUILTIN | Используется приложениями объектов DLL и обработчиками объектов, которые рисуют свои объекты для кэширования данных презентации для обеспечения представления в кэше. Это гарантирует, что данные можно получить, даже если код объекта или обработчика недоступен. |
ADVFCACHE_ONSAVE | Обновления кэшированное представление только при сохранении объекта, содержащего кэш. Кэш также обновляется при переходе объекта OLE из состояния выполнения обратно в загруженное состояние (так как последующая операция сохранения потребует повторного запуска объекта). |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | oleidl.h |