Du musst das
COM-Subsystem mit
CoInitialize(nil); vor dem Verwenden von
COM-Objecten in DLLs initialisieren, und beim Entladen der
DLL wieder mit
CoUnInitialize; aufräumen. Bei multithreaded Anwendungen sollte in jedem Thread ein CoInitialize/CoUnInitialize Paar in der Execute-Methode stehen.
use
ActiveX (bzw. OLE2 in älteren Delphi-Versionen)
ShareMem wird eigentlich nur benötigt, wenn man in extern deklarierten Funktionen Delphi-Strings verwenden will.