extinction: life Ответов: 2

Точки подключения объем взаимодействия нет интерфейс IDispatch


Поскольку никакая библиотека не создается для точек подключения COM, Если я предоставляю точки подключения непосредственно Сети, они появляются в C# как находящиеся в пространстве имен моей DLL. Есть ли способ правильно выставить интерфейсы точек подключения к сети без использования IDispatch?

Что я уже пробовал:

обертывание интерфейсов и посредничество в соединении.

2 Ответов

Рейтинг:
6

extinction: life

the connection point interfaces are defined in OCidl.idl. all four interfaces derive directly from IUnknown interface and not IDispatch. the solution to my problem has nothing to do with project settings. i believe the core problem is i am not using atl. atl creates an automation server by default. when atl creates a connection point it creates either an automation interface, or a dual interface. there is nothing wrong with using a com 1.0 coclass. as for the namespace, it's just like having a class that derives multiple interfaces that derive from iunknown. when casting to iunknown, you should be casting through one of the derived interfaces.

по крайней мере это мой взгляд на это.


Рейтинг:
0

KarstenK

Похоже, у вас есть некоторые проблемы в настройках сборки. Точки соединения являются производными от iDispatch, поэтому они имманентны, и вам нужно лучше понять эту технику. Прочтите статью Точки подключения COM чтобы лучше понять его.

Совет: создайте новый проект с помощью мастера Visual Studio и импортируйте в него свой код. (или сравните настройки с вашим проектом)