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


Перечисление 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