Question: I am programming a DLL. I have to return an instance of TBitmap to the host application.
The DLL has another UNIT, wich is a Form, that it has a TImageList for storing images. I wrote a function that I want to return an Image from the TImageList (from the DLL to the host application. How can I do this?

Thanks,
Yulién.

Answer: 
Objects are combinations of code and data. A normal DLL does not support that, because it only supports the C Application Binary Interface (C ABI) but there is a kind of DLLs that does: BPL files. In other words, you need to create a .bpl file and not a .dll file. This requires both that file and the user to be Delphi, of course.
You can't return an object per se, but you can return a pointer to an object. Refer to [Mastering Delphi 6](http://books.google.com/books?id=YbS3dPcobl8C&pg=PA836&lpg=PA836&dq=delphi+vmt+dll&source=bl&ots=wmWQbhn8p7&sig=bfSB6Y22UrUyw4ZtcG3S9r4sQrg&hl=en&ei=oizeSrGUDYTQtgPZuLyIDg&sa=X&oi=book_result&ct=result&resnum=5&ved=0CBcQ6AEwBA#v=onepage&q=delphi%20vmt%20dll&f=false) and this [description of Vtables in delphi](http://pages.cs.wisc.edu/~rkennedy/vmt).