Делаю ли я свой COM-объект агрегируемым или нет?

#visual-c #com #atl #aggregation

#visual-c #com #atl #агрегация

Вопрос:

Я использую ATL для реализации COM-объекта. Я могу использовать один из макросов агрегации ATL, чтобы изменить, будет ли объект агрегируемым. По умолчанию используется «да, он агрегируемый».

Как мне решить, нужно ли мне разрешать или запрещать агрегацию для моего COM-объекта?

Комментарии:

1. отличный вопрос. Я полагаю, что вы бы сделали свой com-объект агрегируемым, если бы намеревались использовать свой COM-объект родительским COM-объектом (управляющим внешним). Агрегирование описывается как «предоставление внешнему объекту возможности предоставлять другим объектам реализацию интерфейса без изменений». Смотрите msdn.microsoft.com/en-us/library /…

2. @freefallr: Откуда я знаю, что мне это нужно?

3. Обычно я использую сдерживание, а не агрегацию. Единственный раз, когда я видел, чтобы агрегация использовалась, — это для обертывания синглтона.

4. Я думаю, это одна из тех опций, которые следует отключить, если вы думаете, что вам это не понадобится: S