Lebensdauer des Archivs: 10 aktiv, min. 20 Jahre passiv (=lesbar)
{"file":{"name": "abc.jpg","path":"foo\\bar\\baz","mdate":"1234567890","cdate":"1234567000","size":"555123","sha1":"abcdef12abcdef12abcdef12abcdef12"}}
Global ist ein Plugin immer nur ein Objekt, dessen Methoden aufgerufen werden (also SideEffect-frei sein müssen). Es können aber beliebig viele Schnittstellen implementiert werden (Pflicht: IMediaLibraryModule)
Alle Klassen sind auch extern ladbar, aber schon an Delphi gebunden. Keine besondere CallingConvention also.
In Main: Initializatzion→ RegisterClass(TImplementor.Create)
Extern: DLL-Load→ DLL.Register(@RegisterFunction), DLL ruft RegisterFunction mit Instanzen von dem was sie hat auf. (BPL, nur besser)
RegisterClass prüft, ob IMediaLibraryModule implementiert wird; Ruft IMediaLibraryModule.Init auf und übergibt IMediaLibraryApplication.