Иногда наш COM‐компонент должен отправить клиенту уведомление или вызвать функцию обратного вызова. Схема простая: компонент публикует интерфейс, клиент создаёт унаследованный от интерфейса объект и передаёт его компоненту, компонент в свою очередь вызывает функции интерфейса, тем самым вызывая функции на стороне клиента.
В случае Visual Basic или Visual Basic for Applicatons мы можем написать класс, унаследованный от любого интерфейса, однако для файлов сценария VBScript такой возможности нет.
Здесь нам спешит на помощь интерфейс IDispatch
. С помощью этого интерфейса наш могучий компонент смиренно примет на себя скромную роль клиента, а маленький сценарий превратится в настоящий сервер автоматизации.
Разрабатывать компонент будем на языке программирования FreeBASIC.