@bryanarzaga, & digitalsuperman and thread starter narin... LOL i edited this post ^^ to whom I really give some credit LOL...
I think I found something that led me to solve my long time mystery to release com object that runs similarly (speed) if using C# or any .NET platform. Thanks to the MSDN
The Rules of the Component Object Model found at
THIS LINK
I suspect that they didn't follow the rule no.2 at Reference-Counting Rules. well, who knows that this document exist in deep part of MSDN
From a COM client's perspective, reference-counting is always a per-interface concept. Clients should never assume that an object uses the same reference count for all interfaces.
What comes to my mind is to use
"Singleton" pattern. it work! My program runs efficiently now in our system... especially when I tried to copy and revised the MSDN pattern below the
Aggregating Objects. This code:
// Obtaining inner object interface pointer
pUnkInner->QueryInterface(IID_IFoo, &pIFoo);
pUnkOuter->Release();
// Releasing inner object interface pointer
pUnkOuter->AddRef();
pIFoo->Release();
I believed this is a trick, It doesn't make any sense, but it worked! LOL... Thinking about .NET, everyone might think that it can properly handle singleton... but my mistake on that assumption! especially when I found some related issues on the other forums.
Thanks to the previous post by the way I can't follow talga cno nagsabi heheehe,Well, I thought you just bluff me that you able to run nicely hehehe... lets have a beer sometimes
cheerssss.