Добавление доступного извне метода в dll activex (axvlc.dll)

Я пытаюсь исправить / обновить DLL VLC ActiveX, но у меня проблемы с отображением новых методов.

Сами методы легко написать и они просто на языке c / c ++, однако где-то в проекте / dll есть клей, который транслирует вызов между методом в DLL и «понятным именем», предоставляемым dll activex.

Например, у него уже есть метод VLCMediaDescription :: get_title, однако при доступе к нему через интерфейс activex это vlc_object.mediaDescription.title.

Я не вижу в файле .idl ничего такого, что могло бы сделать это.

Кто-нибудь может дать мне подсказку, где делать перевод?

FWIW, это Visual Studio 2012.

Я пытался использовать мастер, но, похоже, он довольно сильно зависал и ничего полезного не дал.

«Объясни мне, что мне 5 лет», было бы здорово.

Спасибо!

Терри

0

Решение

Это было какое-то время, но если память обслуживает файл idl, это должно быть то, что создает библиотеку типов, которая определяет методы и свойства и назначает DISPID каждому. Реализация IDispatch (или IDispatchEx) должна быть тем местом, где вы действительно делаете что-либо в ответ на DISPID, которые определены в файле idl. Я думаю АТЛ делает некоторую магию с помощью typelib, например, автоматический поиск и отправку в get_ * и put_ * или что-то еще. В противном случае в вашей реализации IDispatch вы можете выполнять поиск в typelib. Смотрите автоматизацию ссылка для документирования функций.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]