У меня есть проект 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 не отображается в списке существующих точек подключения.
Перекомпилировал, включая чистку и пересборку всего.
Что мне не хватает?
Спасибо.