来自scrrun.dll的ATL和类型

时间:2010-05-24 06:25:24

标签: c++ com midl

我在ATL项目中有接口,它必须包含带有Scripting :: IDictionary **参数的成员,但在MIDL文件中有我的接口的描述,这是不可能的,因为Scripting库没有在默认库中显示。我总是有scrrun.tlb并试图在MIDL中使用它,但它不起作用

代码在这里:midl-code

1 个答案:

答案 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);
    };
    ...
}