В модуле ComObj,Ole2 вообще отсутствует реализация чего-либо. Я тут недавно исправил это упущение, но... оказалось действительно через варианты не хотит работать. Есть в таком случае 2 выхода
1. Работать непосредственно через VTBL и IUnknown. В этом случае программисту надо закладывать самому в свой модуль доступ к интерфейсам. Если интерфейсов сотни 2, то это конечно тяжко

Зато этот способ самый быстрый в плане производительности и дает возможность компилятору контролировать большинство типов.
2. Работать c IDispatch. Достоинства - достаточно правльно реализовать метод Invoke чтобы получить взможность вызвать любой метод того же Word например. Этот способ реализован в Делфи и Бейсике. Недостаток - тормознутость, может возникнуть большое кол-во ошибок в рантайме, и еще можно ощутить всю радость работы с маловразумительными типами Com.
Вот теперь не знаю стоит ли браться за реализацию всего этого, а если да, то какой способ лучше. :unsure: Мож кто присоветует что-то...