ciao.
Ho un progetto c++ MFC che legge da un programma tramite un api com.
Il problema è che questo programma ha cambiato versione ed è passato alla successiva.

io mi interfaccio con il server com tramite questo codice indicativo:
codice:
IUnknown *punk;
	
	hr = CLSIDFromProgID(L"PippoXXX.XXXObject", &clsid);
	hr = CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void **)&punk) ;
	hr = punk->QueryInterface(id, (void**)&m_pPippo);
Come faccio a sapere il CLSID del server com (che nel mio caso è un .exe) o comunque la stringa da passare a CLSIDFromProgID dal programma(inteso con un ottica di distribuzione del software)?
e nel caso ci sia installata piu' di una versione del programma, come faccio a interfacciarmi ad una piuttosto che ad un altra?

Com è ancora una strada valida per creare un api per esportare dati o accedere a funzioni?
Da dove posso partire e chiedo magari se ci sono dei buoni libri sull argomento.
Grazie.