1

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

代码在这里:midl-code

4

1 回答 1

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);
    };
    ...
}
于 2010-05-24T06:30:12.107 回答