Это большой недостаток коннекшн поинтов. Обычно используется диспинтерфейс.
Обойти можно, но есть много телодвижений.
Обычно все исходящие интерфейсы являются наследниками от IDispatch.
Если есть диспатч — работай с ним. Если нет — работай напрямую.
Все это можно выяснить из конкретного интерфейса.
Обычно эта ответственность лежит на сервере.
IE, например, проверяет на IDispatch.
Ну и нужно делать дуальный интерфейс, если в IID_Event засовываешь в QueryInterface.
SNN>Вопрос в следующем: SNN>Т.е. я могу формально подправить QueryInterface и добавить туда строчку, что я поддерживаю IID_Event, но если вдруг объект-источник событий решит вызвать через указатель методы IID_Event напрямую, не через IDispatch, то тут же получит ошибку доступа к памяти.
SNN>Я поискал по интернету, но наткнулся лишь на одну статью с borland'a, где они решают похожую задачу, так там они действительно в QueryInterface объявляют о поддержке IID_Event, но возвращают просто указатель на IDispatch.
SNN>Может быть есть какие-нибудь соглашения о вызове методов на [default,source] интерфейсах? SNN>Или нужна какая-нибудь дополнительная обработка?