Шаг 54 - Свойства ATL класса - Attributes

Устанавливаться при создании объекта.

54_1.gif (4767 b)

Первое, что Вы должны выбрать это модель потоков Threading Model:

Single
Apartment 	(Single Thread Apartment Model - STA)
Free 		(Miltithread Apartment MTA)
Bath 		(STA+MTA)

Наличие нескольких моделей потоков определяется тем, что сам объект может быть однозадачный или многозадачный, кроме того контейнер может быть многозадачный или однозадачный. Вот обеспечением этих комбинаций для максимальной производительности и служат эти модели.

Что происходит при модели Single. Вне зависимости от типа контейнера для предотвращения одновременного вызова нескольких функций все они пропускаются через специальный объект (proxy).

При модели Free вроде как все нормально. Но это только в том случае, если контейнер многозадачный. А вот если нет, то все повториться только с другой стороны.

Модель Apartment улучшенный вариант Single. И хоть смысл тот же реализoванно по другому, что ведет к существенному ускорению.

Модель Both может работать в любой среде в зависимости от требований контейнера.

Какую выбрать ??? Зависит от задачи. Exploler поддерживает STA, а если мы хотим работать в многозадачной среде, то нам нужен MTA.

Вторая группа - это интерфейс. Он двух типов:

Dual
Custom

Dual позволяет вызывать методы через Idispath. При использовании Custom методы вызываются напрямую. Выбор зависит от типа работы. VB всегда пользует Dual. Если элемент будет использован в VB нужен именно этот тип интерфейса.

Дальше группа ответственная за агрегацию. То есть можно ли этот класс использовать для агрегации.

Yes Да
NO нет

Only по другому использовать нельзя.

Ниже идут три флажка:

Supprt IsupporterrorInfo 	- расширенная информация об ошибках
Support Connection Point 	- необходимо, если Ваш объект генерирует сообщения
Free Threaded Marhaler 		- отвечает за реализацию маршалинга.

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.