Most likely there's something wrong with the reference counting.
When the function exists, the reference count to all interfaces is decremented. The Delphi compiler automatically creates the necessary code to call ICOMEditArticleManager::Release
.
Either its implementation is flawed or you are not returning a valid IUnknown
interface.
You can try the following:
- In VC++ set a breakpoint at the implementation of
ICOMEditArticleManager::Release
- In Delphi switch to the CPU mode and single-step through the disassembled code.
That way you should find the cause or at least narrow it down.