对于安装在两台不同机器上的同一程序,CLSID可以不同吗?

时间:2010-03-15 03:19:24

标签: python com

我正在使用comtypes为某个com库生成包装器。我有一些问题,但没有正确生成。我可以通过手动完成缺失的工作来解决这个问题。但是,我可以依赖CLSID不会改变的事实吗?

让我们说:

我使用com库Foo 1.0安装程序,现在我在另一台PC上安装完全相同的程序版本,接口的CLSID会改变吗?

这可能是一个非常愚蠢的问题。

2 个答案:

答案 0 :(得分:1)

CLSID至少应该不会改变。当然,一个程序可以做很多违反规定的愚蠢的事情。但是:由于CLSID是类的加载方式,更改的CLSID意味着类的USING程序也必须使用更改的CLSID。

Su,您的假设是正确的 - 如果在两台计算机上安装了相同版本的相同程序,则可以安全地假设CLSID没有更改。

在版本之间甚至应该这样做......但是如果库Foo 1.0仅由一个程序使用,程序员可能会使用已更改的CLSID。但是,它不应该改变。

答案 1 :(得分:1)

免责声明:完成了很多COM,但从未使用过python。

COM接口的UUID是接口定义的一部分。它应该在每台机器上都是一样的,而且一直都是这样。

此外,在ATL COM中,类具有CLSID,接口具有IID。它们都有UUID(或可能是GUID)。关于python不确定。