I've got an MFC DLL using a VB5 Active X DLL, and a third party development
environment (GraphTalk) calling the MFC DLL to invoke Functions which in
turn access the Active X DLL to perform the required processing (we need to
do this as GraphTalk doesn't support ActiveX technology and can only
interface with C DLL's and we want to use functionality already developed in
VB ActiveX DLL's).
i.e GraphTalk ----> MFC DLL ----> VB ActiveX DLL
The problem is that the MFC DLL generates a CO_E_NOTINITALIZED error when it
tries to create an instance of the ActiveX DLL (the CoCreateInstance line in
OLEDISP2.CPP, ColeDispatchDriver::CreatDispatch method). However I't works
perfectly when I call the MFC DLL functions from a VB EXE
i.e. VB EXE ----> MFC DLL ----> VB ActiveX DLL
How can this be as from where the MFC DLL is called shouldn't be effecting
the CoCreateInstance call. I have also tried calling the MFC DLL from a C
EXE and this also doesn't work (get the same error message as that above).
As anybody any ideas why the process works being triggered from a VB EXE but
not from a C EXE or my other development tool (Graphtalk). Is it to do with
Threads, Processes and the Stack?