Application is written in delphi 2010 and the underlying dll is a C++ dll. 

In ideal case, when your application is in C++; The dll makes a callback to an application when an event occurs. The callback is implemented through an interface. Application developers implements the abstract c++ class and pass the object to the dll. The dll will then make a callback to a member function of your implemented class. A classic callback pattern it is.

But how do I pass a delphi object to the dll for it to make a callback.