unit UActiveXCase; {$WARN SYMBOL_PLATFORM OFF} interface uses Windows, ActiveX, Classes, ComObj, ActiveXObjectTest_TLB, StdVcl, Dialogs; type TActiveXCase = class(TTypedComObject, IActiveXCase) protected function Test(const Msg: WideString): HResult; stdcall; {Declare IActiveXCase methods here} end; implementation uses ComServ; function TActiveXCase.Test(const Msg: WideString): HResult; begin ShowMessage(Msg); end; initialization TTypedComObjectFactory.Create(ComServer, TActiveXCase, Class_ActiveXCase, ciMultiInstance, tmApartment); end.