接口ID,实现ID和DLL ID(UID3)的区别和关系是什么?

时间:2010-03-09 03:06:18

标签: plugins symbian ecom

为什么ECOM需要实施ID? UID3还不够?

谢谢。

1 个答案:

答案 0 :(得分:1)

所有Symbian OS二进制文件都有三个UID:UID1,UID2,UID3。

  • UID1指定目标类别(例如exe,dll),并从MMP文件TARGETTYPE关键字自动推断。

  • UID2指定目标子类别(例如,通用dll或插件dll)。对于ECOM插件dll,它应该是0x10009d8d

  • UID3标识对象本身,您必须提供唯一值(从不受保护的范围中挑选或从受保护范围分配)。 UID2和UID3使用MMP文件UID关键字指定。

ECOM插件资源文件包含三种UID:

  • dll_uid是一种将插件资源文件中包含的接口/实现映射到插件二进制DLL的机制。它与UID3相同。

  • interface_uid是一个UID,用于标识插件实现的接口。插件接口可能有多个实现,因此需要一种识别其通用性的机制。

  • implementation_uid是接口实现的标识符。它通常与dll_uid相同,但不一定如此。允许在单个二进制文件中实现多个接口实现可能有所不同。

因此,UID3就足够了,但是编写资源文件的ECOM框架也需要知道二进制dll_uid,以便能够在请求时加载实现。