Все двоичные файлы Symbian OS имеют три UID: UID1, UID2, UID3.
UID1 указывает целевую категорию (например, exe, dll) и автоматически выводится из файла MMP TARGETTYPE
ключевое слово.
UID2 указывает целевую подкатегорию (например, универсальную dll или подключаемую dll). Для dll модуля ECOM это должно быть 0x10009d8d
.
UID3 идентифицирует сам объект, и вы должны указать уникальное значение (выбранное из незащищенного диапазона или выделенное из защищенного диапазона). UID2 и UID3 указываются с использованием ключевого слова MMP-файла UID
.
Файлы ресурсов подключаемого модуля ECOM содержат три вида UID:
dll_uid
- это механизм для отображения интерфейсов / реализаций, содержащихся в файле ресурсов плагина, в двоичную DLL-библиотеку плагина. Это то же самое, что и UID3.
interface_uid
- это UID, который идентифицирует интерфейс, реализуемый плагином. Интерфейс подключаемого модуля может иметь более одной реализации, поэтому необходим механизм для определения их общности.
implementation_uid
- идентификатор реализации интерфейса. Часто это то же самое, что и dll_uid
, но это не обязательно. Он может отличаться, чтобы разрешить несколько реализаций интерфейса в одном двоичном файле.
Итак, UID3 достаточно, но инфраструктура ECOM, кодирующая файлы ресурсов, должна знать двоичный файл dll_uid
, чтобы иметь возможность загружать реализацию по запросу.