ЛБ>>Я только что изучил comip.h и во всех конструкторах _com_ptr_t нашел AddRef либо QueryInterface. ЛБ>>Противное было бы странно, уж очень интенсивно их пользуют во всем мире.
ЛБ>>Но так ли это, что при создании ты делаешь QueryInterface? ЛБ>>Знаешь ли ты, что CComObject::CreateInstance дает объект с нулевым счетчиком?
ЛБ>>Лазар
L>знаю, поэтому сразу после создания в сервере делаю QueryInterface — и интерфейс пускай лежит, и счетчик = 1, чтобы работать с объектом можно было. L>НО потом мне приходится делать дополнительный аддреф, дабы после возврата из события объект жив остался. L>Сейчас заменил входной параметр функции-обработчика на просто ВашИнтерфейс*.
Я не совсем понял, что здесь имеется ввиду, формальный параметр или фактический аргумент.
L>Все работает, ссылки не теряются, как и следовало ожидать. Но если опять заменю параметр на ВашИнтерфейсPtr — получу потерянную ссылку.
L>Соответственно получается, что не используется конструктор... Или как?.. Не понимаю =(
L>ЗЫ L>могу привести примерный код