<p>I'm developing an <code>ActiveX EXE</code> that exposes an specific class to a third-party software.  This third-party software instanciates an object of this class and uses its methods.  </p>

<p>Strangely, this third-party software destroys its object of my exposed class as soon as it calls an specific method, but I have no idea why this happens.</p>

<p>The only clue I have is that this method is the only one that returns a value.  All the other ones are simple 'subs' that do not return any value, and when they are called nothing wrong happens.</p>

<p>I'm using  VB6.</p>

<p>Do you guys have any idea of why it's happening?</p>

Your object gets "destroyed" when the last reference to it is deleted. Thats normal COM behavior. Or is your object dying unexcepted and the third-party app is getting an activex error?
Some more questions:
I don't know what you mean with "data server"?
Do you have access to the source code of the third-party app?
Are you sure, the third-party app holds a reference to your object?
Is your objects Class_Terminate Method called?
EDIT:
OK, when Class_Terminate is getting called its obvious, that the third-party app has dropped its reference to your object.