为什么ECOM需要实施ID? UID3还不够?
谢谢。答案 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
,以便能够在请求时加载实现。