То, что я видел до сих пор, может быть только один плагин на файл .dll, верно?
Нет, в одной DLL может быть реализовано несколько плагинов.
Браузер вызывает NP_GetEntryPoints, NP_Initialize и NP_Shutdown только «один раз» на dll, верно?
Только один раз за процесс и загрузку (имейте в виду, что он будет выгруженв то время как ни один экземпляр больше не существует).
Я стремлюсь создать несколько плагинов в одной динамической библиотеке.Это возможно, и если, как?
Это возможно.Вы просто регистрируете различные mimetypes для одной и той же динамической библиотеки (например, в Windows несколько записей mimetype в реестре, указывающих на одну и ту же DLL).
NPP_New()
получает NPMIMEType
в качестве первого параметра, который позволяет вамопределить, какой «плагин» был запрошен.
Также необходимо настроить NP_GetMIMEDescription()
(используется в Linux и Mac OS).
В Windows у вас должен быть список mimetypes, разделенных|
, в информации о версии (запись MIMEType
).