2010-03-09 128 views

回答

1

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

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

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

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

ECOM插件资源文件包含3种的UID:

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

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

  • implementation_uid是接口实现的标识符。通常它与dll_uid一样,但它不需要。在一个二进制文件中允许多个接口实现可以是不同的。

所以,UID3足够,但ECOM框架装载仪的资源文件需要知道二进制dll_uid也能够请求时加载的实现。

+0

实现ID不必与实现该插件的DLL的UID3相同(尽管通常是这样),因此您可以在单个DLL中提供多个ECOM插件。 – MathewI 2010-03-09 09:22:56

+0

@Mathewl:你说得对。感谢您的评论。我已经更新了我的答案。 – laalto 2010-03-09 09:49:53

相关问题