Проблема вот в чём.
Есть COM`овская dll`ка, написанная на C++. Внутри неё в вызывается CoInitializeEx(NULL, COINIT_MULTITHREADED) — там необходимо использовать многопоточную модель.
Из скрипта Rational Robot`а я пытаюсь вызвать методы из этой dll`ки:
Dim a As Object
Set a = CreateObject("XXX.XXX")
a.SameMethod 'В этом методе вызывается CoInitializeEx(...)
Так проблема в том, что CoInitializeEx возвращает ошибку RPC_E_CHANGED_MODE — "Cannot change thread mode after it is set". Хотя при вызове тех же методов из программы, написанной на C++, всё проходит нормально.
Не сталкивался ли кто-нибудь с такой проблемой? Как из Rational Robot`а вызывать методы многопоточной dll`ки?
P.S. Если сделать dll`ку однопотоковой и вызывать CoInitialize(NULL), то он не вернёт никакой ошибки.