I may be wrong, but I thought COM objects were reference counted and didn't need to be manually deleted. At least that is the way they always worked in Delphi and C#. When the last variable went out of scope that referenced the COM object the object was automatically deleted.

Is that not true for Qt?
It has nothing to do with Qt.
Regarding the reference count on COM objects, I think it depends on what kind of pointer container they are held.
CComXXX<T> pointer does ref counts, but a plain pointer does not.
I can't see the declaration of the pointer variable so I don't know for your case.

You should run you application through a leak detection tool, which can also detect COM leakages to be sure.
I'd recommend that you ask that on a COM oriented forum, where the people know these issues in more detail.