Перечисление TYPEFLAGS (oaidl.h)
Флаги типа.
Синтаксис
typedef enum tagTYPEFLAGS {
TYPEFLAG_FAPPOBJECT = 0x1,
TYPEFLAG_FCANCREATE = 0x2,
TYPEFLAG_FLICENSED = 0x4,
TYPEFLAG_FPREDECLID = 0x8,
TYPEFLAG_FHIDDEN = 0x10,
TYPEFLAG_FCONTROL = 0x20,
TYPEFLAG_FDUAL = 0x40,
TYPEFLAG_FNONEXTENSIBLE = 0x80,
TYPEFLAG_FOLEAUTOMATION = 0x100,
TYPEFLAG_FRESTRICTED = 0x200,
TYPEFLAG_FAGGREGATABLE = 0x400,
TYPEFLAG_FREPLACEABLE = 0x800,
TYPEFLAG_FDISPATCHABLE = 0x1000,
TYPEFLAG_FREVERSEBIND = 0x2000,
TYPEFLAG_FPROXY = 0x4000
} TYPEFLAGS;
Константы
TYPEFLAG_FAPPOBJECT Значение: 0x1 Описание типа, которое описывает объект приложения. |
TYPEFLAG_FCANCREATE Значение: 0x2 Экземпляры типа могут быть созданы с помощью ITypeInfo::CreateInstance. |
TYPEFLAG_FLICENSED Значение: 0x4 Этот тип лицензирован. |
TYPEFLAG_FPREDECLID Значение: 0x8 Этот тип определен заранее. Клиентское приложение должно автоматически создать единственный экземпляр объекта с данным атрибутом. Имя переменной, указывающей на данный объект, совпадает с именем класса объекта. |
TYPEFLAG_FHIDDEN Значение: 0x10 Этот тип не должен отображаться для браузеров. |
TYPEFLAG_FCONTROL Значение: 0x20 Этот тип является элементом управления, из которого производятся другие типы. Он не должен отображаться для пользователей. |
TYPEFLAG_FDUAL Значение: 0x40 Интерфейс предоставляет привязку IDispatch и VTBL. |
TYPEFLAG_FNONEXTENSIBLE Значение: 0x80 Интерфейс не может добавлять члены в процессе выполнения. |
TYPEFLAG_FOLEAUTOMATION Значение: 0x100 Типы, используемые в данном интерфейсе, полностью совместимы с автоматизацией, включая поддержку привязки VTBL. Параметр dual в интерфейсе устанавливает этот флаг в дополнение к TYPEFLAG_FDUAL. Недопустимо для диспетчерских интерфейсов. |
TYPEFLAG_FRESTRICTED Значение: 0x200 Следует исключить доступность из макроязыков. Этот флаг предназначен для типов уровня системы или типов, которые не должны отображаться обозревателями типов. |
TYPEFLAG_FAGGREGATABLE Значение: 0x400 Класс поддерживает агрегирование. |
TYPEFLAG_FREPLACEABLE Значение: 0x800 Тип является заменяемым. |
TYPEFLAG_FDISPATCHABLE Значение: 0x1000 Указывает, что интерфейс является производным от IDispatch прямо или косвенно. Этот флаг вычисляется. Для флага нет языка описания объектов. |
TYPEFLAG_FREVERSEBIND Значение: 0x2000 Тип имеет обратную привязку. |
TYPEFLAG_FPROXY Значение: 0x4000 Интерфейсы можно пометить этим флагом, чтобы указать, что они будут использовать библиотеку динамической компоновки прокси-сервера или заглушки. Этот флаг указывает, что прокси-сервер typelib не должен быть отменен при отмене регистрации typelib. |
Комментарии
TYPEFLAG_FAPPOBJECT можно использовать в описаниях типов с TypeKind = TKIND_COCLASS и указывает, что в описании типа указан объект Application.
Члены объекта Application доступны глобально. Метод Bind экземпляра ITypeComp , связанного с библиотекой, привязывается к членам объекта Application так же, как и для описаний типов, имеющих TypeKind = TKIND_MODULE.
Описание типа неявно определяет глобальную переменную с тем же именем и типом, которые описаны в описании типа. Эта переменная также доступна глобально. Когда bind передается имя объекта Application, возвращается VARDESC, описывающий неявную переменную. Идентификатор неявно созданной переменной всегда ID_DEFAULTINST.
Вызывается функция ITypeInfo::CreateInstance описания типа объекта Application, а затем она использует GetActiveObject для получения объекта Application. Если getActiveObject завершается сбоем, так как приложение не запущено, createInstance вызывает CoCreateInstance, который должен запустить приложение.
Если задано TYPEFLAG_FCANCREATE, CreateInstance может создать экземпляр этого типа. Это справедливо только для классов объектов компонентов, для которых указан глобальный уникальный идентификатор (GUID).
Требования
Требование | Значение |
---|---|
Заголовок | oaidl.h |