I really dislike half assed COM server implementations
-
Jörgen Sigvardsson wrote:
the internal threads the COM object created just wouldn't die
I've seen this before, and it normally means the reference counting is screwed up. In other words, there's a whole hunka memory leaking going on in there.
Forgive your enemies - it messes with their heads
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility
It is weird though, because when you run it in-proc, the server is unloaded quicker than lightning as soon as you release the last reference. Running a COM server as out-proc that was intended to be run in-proc, is a hack. I can't blame them for it not working properly. But hey, desperate times call for desperate measures!
-- Kein Mitleid Für Die Mehrheit
-
I feel your pain. I've been going through the same crappola over the last month or so as well. They didn't call it COM hell for nothing, you know. :doh:
I wasn't, now I am, then I won't be anymore.
When done right, COM is nice. I don't fear the low level nature of it. I fear situations where they put a Delphi programmer on the task, because those development environments are so far removed from the complexities of COM. You can't expect a Delphi programmer to hack it. It's like asking a .NET guy to do great work with J2EE - it can be done, but I wouldn't recommend it if the app is to be shipped in a short time frame, or if the development team is one person.
-- Kein Mitleid Für Die Mehrheit
-
I am going to fight another battle tonight, to try to ward off ill behaving inproc COM servers. In all likelihood, the war will not be over. I dont't know how many times I have had to put up with this shit. :mad: My users see my app crash, so I'm the bad guy. I really don't like that... Wish me luck!
-- Kein Mitleid Für Die Mehrheit
Problem solved. Bypassed the Co* layer, to instantiatie the object myself. This gives me full control of the DLL lifetime. Also made the developer fix the bugs in his implementation (I will probably find new ones next week, so don't worry - I'll still have a job to do). Push to customers on monday morning. Weekend saved! Have a good one!
-- Kein Mitleid Für Die Mehrheit