interface - Call RegisterClassObjects and ResumeClassObjects in multiple threads? -


i have c++ com server uses third-party dll exposes com interface. third-party dll old (built visual studio 6) uses old atl code. have source dll.

i'm in process of making application work 32- , 64-bit, need update third-party dll make operate 64-bit application. of course, old atl code isn't supported under recent versions of visual studio have modify it. made 1 change - module in dll derived old ccommodule. changed catlexemodulet<>. got working com interface exposed third-party dll works correctly, none of application's com interfaces visible.

coregisterclassobjects() , coresumeclassobjects() called third-party dll (in 1 thread) , application (in different thread). don't errors returned those...but valid scenario?

if not call coregisterclassobjects() , coresumeclassobjects() third-party dll, application's com interfaces visible.

so seems 1 hides other. however, worked correctly using third-party dll built visual studio 6.

is there reason 1 set of interfaces visible?

i resolved issue. turns out recent versions of atl still support ccommodule class. unfortunately, can't recall details made me change class using. ccommodule::init() method 1 of them. takes third, optional guid parameter, wasn't being passed in. maybe older visual studio 6 atl code had way of getting value. newer atl code didn't value. added parameter , things started working again.


Comments