Перечисление ADVF (objidl.h)
Флаги, управляющие кэшированием и уведомлением об изменениях в данных.
Синтаксис
typedef enum tagADVF {
ADVF_NODATA = 1,
ADVF_PRIMEFIRST = 2,
ADVF_ONLYONCE = 4,
ADVF_DATAONSTOP = 64,
ADVFCACHE_NOHANDLER = 8,
ADVFCACHE_FORCEBUILTIN = 16,
ADVFCACHE_ONSAVE = 32
} ADVF;
Константы
ADVF_NODATA Значение: 1 Для подключений рекомендаций по данным (IDataObject::D Advise или IDataAdviseHolder::Advise) этот флаг запрашивает, чтобы объект данных не отправлял данные при вызове метода IAdviseSink::OnDataChange. Получатель уведомления об изменении может позже запросить данные, вызвав метод IDataObject::GetData. Объект данных может выполнить запрос, передав TYMED_NULL в параметре STGMEDIUM, или он может предоставить данные в любом случае. Например, объект данных может иметь несколько консультативных подключений, не все из которых указаны ADVF_NODATA. В этом случае объект может отправлять одно и то же уведомление всем подключениям. Независимо от запроса контейнера реализация IAdviseSink должна проверка параметру STGMEDIUM, так как она отвечает за освобождение среды, если она не TYMED_NULL. Для подключений к кэшу (IOleCache::Cache) этот флаг запрашивает, чтобы кэш не обновлялся путем изменений, внесенных в выполняющийся объект. Вместо этого контейнер обновит кэш, явно вызвав IOleCache::SetData. Эта ситуация обычно возникает, когда кэшируется знаковый аспект объекта. ADVF_NODATA не является допустимым флагом для подключений с рекомендациями по просмотру (IViewObject::SetAdvise) и возвращает E_INVALIDARG. |
ADVF_PRIMEFIRST Значение: 2 Запрашивает, чтобы объект не ждал изменения данных или представления перед первоначальным вызовом IAdviseSink::OnDataChange (для подключений к данным или просмотру рекомендаций) или обновлением кэша (для подключений к кэшу). Этот параметр, используемый с ADVF_ONLYONCE, предоставляет асинхронный вызов IDataObject::GetData . |
ADVF_ONLYONCE Значение: 4 Требует, чтобы объект создавал только одно уведомление об изменении или обновление кэша перед удалением соединения. ADVF_ONLYONCE автоматически удаляет консультативное подключение после отправки одного уведомления о данных или просмотре. Приемник рекомендаций получает только один вызов IAdviseSink . Если подключение установлено, возвращается ненулевой идентификатор подключения, поэтому вызывающий объект может использовать его для удаления подключения до первого уведомления об изменении. Для уведомлений об изменении данных сочетание ADVF_ONLYONCE и ADVF_PRIMEFIRST фактически обеспечивает асинхронный вызов IDataObject::GetData . При использовании с кэшированием ADVF_ONLYONCE обновляет кэш только один раз при получении первого уведомления IAdviseSink::OnDataChange . После завершения обновления консультативное подключение между объектом и кэшем отключается. Исходный объект для соединения рекомендаций вызывает метод Release . |
ADVF_DATAONSTOP Значение: 64 При использовании вспомогательных соединений с данными обеспечивает доступ к данным. Этот флаг указывает, что при закрытии объекта данных он должен вызывать , предоставляя данные при вызове . Как правило, это значение используется в сочетании с ADVF_NODATA. Без thIAdviseSink::OnDataChange имеет значение, к тому времени, когда вызов OnDataChange без данных достигает приемника, источник мог завершить работу и данные могут быть недоступны. Приемники, указывающие это значение, должны принимать данные, предоставленные в OnDataChange , если они передаются, так как они могут не получить еще одну возможность получить его. Для подключений к кэшу этот флаг указывает, что объект должен обновить кэш при закрытии объекта. ADVF_DATAONSTOP не является допустимым флагом для подключений к просмотру рекомендаций. |
ADVFCACHE_NOHANDLER Значение: 8 Синоним ADVFCACHE_FORCEBUILTIN, который используется чаще. |
ADVFCACHE_FORCEBUILTIN Значение: 16 Это значение используется приложениями объектов DLL и дескрипторами объектов, которые выполняют рисунок своих объектов. ADVFCACHE_FORCEBUILTIN указывает OLE кэшировать данные презентации, чтобы обеспечить наличие презентации в кэше. Это значение не является допустимым флагом для подключений к данным или представлениям рекомендаций. Для подключений к кэшу этот флаг кэширует данные, требующие наличия только кода, поставляемого с OLE (или базовой операционной системой), чтобы создать его с помощью IDataObject::GetData или IViewObject::D raw. Указав это значение, контейнер может гарантировать, что данные можно извлечь, даже если код объекта или обработчика недоступен. |
ADVFCACHE_ONSAVE Значение: 32 Если используются соединения с кэшем, этот флаг обновляет кэшированное представление только при сохранении объекта, содержащего кэш. Кэш также обновляется при переходе объекта OLE из запущенного состояния обратно в загруженное состояние (так как последующая операция сохранения потребует повторного запуска объекта). Это значение не является допустимым флагом для подключений к данным или представлениям рекомендаций. |
Комментарии
Для подключения к данным или представлениям контейнер использует константы ADVF при настройке соединения между экземпляром IAdviseSink и экземпляром IDataObject или IViewObject . Эти подключения настраиваются с помощью методов IDataObject::D Advise, IDataAdviseHolder::Advise или IViewObject::SetAdvise .
Для подключения к кэшированию константы указываются в методе IOleCache::Cache , чтобы указать запросы контейнера о том, как объект должен обновлять свой кэш.
Эти константы также используются в элементе advf структуры STATDATA . Эта структура используется В IEnumSTATDATA для описания перечисленных подключений, а член advf указывает флаги, которые были указаны при установке соединения рекомендаций или кэша. Если для перечислителя IOleObject::EnumAdvise используется STATDATA, член advf является неопределенным.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | objidl.h |