我在ATL项目中有接口,它必须包含带有Scripting :: IDictionary **参数的成员,但在MIDL文件中有我的接口的描述,这是不可能的,因为Scripting库没有在默认库中显示。我总是有scrrun.tlb并试图在MIDL中使用它,但它不起作用
代码在这里:midl-code
答案 0 :(得分:1)
将以下内容添加到您的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);
};
...
}