У меня есть проект ATL / COM на VC ++ 6. Я хочу, чтобы существующий класс, который никогда ранее не определялся, вызывал события, вызывал события. Для этого класс должен будет реализовать «точку подключения».
Эти события относятся к типу, который ни один класс не вызывал ранее, поэтому мне придется создать новую точку подключения, а не повторно использовать существующую.
Я знаю, как заставить класс реализовать точку подключения - щелкните правой кнопкой мыши класс в представлении классов, выберите «реализовать точку подключения» и выберите соответствующую точку подключения из списка, который он отображает.
Я знаю, как создать новую точку подключения, если она связана с новым классом ATL для ее реализации - отметьте «Поддержка точек подключения» при создании класса.
Но я не могу понять, как создать новую точку подключения без создания нового класса ATL, который ее реализует.
Я изменил IDL, добавив что-то похожее на определения существующих точек подключения:
[
uuid(*blah blah blah*),
helpstring("_IBlahEvents Interface")
]
dispinterface _IBlahEvents
{
properties:
methods:
[id(1), helpstring("method BlahChanged")] HRESULT BlahChanged();
};
(Очевидно, у меня есть настоящий uuid, а не " бла-бла-бла ").
После этого интерфейс _IBlahEvents отображается в представлении классов. Но когда я щелкаю правой кнопкой мыши по классу ATL, который я хочу реализовать _IBlahEvents, и выбираю «Реализовать точку подключения», _IBlahEvents не отображается в списке существующих точек подключения.
Я перекомпилировал, включая очистку и восстановление всех.
Чего мне не хватает?
Спасибо.