是否可以向typelib添加其他GUID?

时间:2009-08-23 09:18:50

标签: delphi com typelib

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

a)如何在Delphi(2007及以上版本)中完成这项工作?

或作为替代

b)是否可以并且建议使用CATID的接口GUID?

1 个答案:

答案 0 :(得分:1)

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

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

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

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