为什么在 ECOM 中需要实现 ID?UID3不够?
谢谢你。
所有 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
才能在请求时加载实现。