Smartpointer vor CoUninitialize() zurückgeben?

Moinsen Leutz!

Ich hänge gerade an einer Dll, die einen in Java geschriebenen Server über eine COM-Schicht anspricht. Die Dll selbst ist in Standart C/C++ geschrieben. Die Interface Pointer sin _COM_SMARTPTR.
Mein Problem ist nun, dass ich als letzte Aktion, bevor die Anwendung geschlossen wird, die Com-Schicht via CoUninitialize freigeben möchte. Diese CoUninitialize frisst sich allerdings fest. Also bessser gesagt, die Ausführung kommt aus der Funktion nicht mehr raus.
Ich hatte schon mit ein paar Leuten gesprochen, wovon mir einer die Frage stellte, ob ich denn alle Interfacepointer zurückgegeben habe. Da es sich bei diesen Pointern nicht um Variablen pointer im eigentlichen Sinne handelt, wollte ich ma fragen, ob sich hier jemand findet der sich mit der Sache auskennt.

Bin dankbar für jede Idee.
Bis denne.
Stefan