Добавьте в свой IDL следующее:
importlib("scrrun.dll");
Тогда вы можете использовать IDictionary
.
У меня работает на XP и выше.
Вот фрагмент некоторых моих IDL:
import "oaidl.idl";
import "ocidl.idl";
library FooLib
{
importlib("stdole2.tlb");
importlib("scrrun.dll");
[
uuid(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX),
helpstring("_FooLibEvents Interface")
]
dispinterface _IFooEvents
{
properties:
methods:
[id(1)] void AnEvent(IDictionary* dict);
};
...
}