0

我有一个描述一些接口的类型库。由于其中一些接口用作类别,因此我想将类别 ID 添加到类型库中。所以问题是:

a) 如何在 Delphi (2007 及更高版本) 中做到这一点?

或作为替代

b) 是否可以且建议将接口 GUID 用于 CATID?

4

1 回答 1

1

对于a),我不知道Delphi。但在 C++ 中,它只是将接口描述添加到 MIDL 文件中。由于您似乎真的只使用接口,您可能也不需要 CoClass 实现,所以这已经足够了。基本上,您是如何将其他接口添加到类型库的?现在以同样的方式进行。

[编辑]我找到了一个关于使用typelib-editor的简短教程。似乎添加接口只是正确关键字的问题。[/edit]

至于 b),我认为将接口用作类别 ID 没有任何问题,但是这个问题有点含糊……因为可能的类别集是固定的,并且您不使用一些类似继承的行为(在至少我认为你说你使用接口 GUID,而不是接口本身),为什么不只使用枚举器?使用接口等似乎是一个过度设计的解决方案,除非接口真的是这样使用的,即提供对某些特定类别行为的访问。

[编辑]当您谈论ICatRegister等时,我明白您为什么要使用 GUID。由于类别 GUID 与 COM 接口 GUID 位于不同的命名空间中,因此当然要使用相同的命名空间。无论如何,您的界面 GUID 必须在与类别 ID 相同的范围内是唯一的,并且具有 1:1 映射似乎也是一个简单的维护模型。[/edit]

于 2009-08-23T09:39:31.557 回答