ciao.
Ho un applicazione che si aggancia ad un instanza di un server com se è gia avviato , mentre lancia l'applicazione del server com se non ci sono istanze di applicazione.
Fino ad adesso ho risolto con :
m_hSapWnd = ::FindWindow(CLASS_NAME, NULL) dove class name è una stringa col nome della classe della finestra principale trovato con l'applicazione spy di visual studio, se m_hSapWnd è NULL non ci sono istanze , metre se ha un valore valido l'istanza è gia avviata.
Il problema è che questo metodo è troppo insicuro e poco valido :se l'applicazione cambia o se cambia il nome della classe del applicativo sulla macchina dove è installata(magari per una versione diversa)fallisce.
Esiste un metodo piu sicuro?
Ho letto un po su google ed ho scoperto che esisteste una tabella rot che ha un elenco di tutte le istanze com avviate.
premetto che ho provato ad utilizzare GetActiveObject per vedere se c'è un instanza del server com a cui mi connetto , ma niente , mi ritorna sempre un errore "operazione non supportata" , comunque non sono riuscito nello scopo(premetto che utilizzo la suddetta funzione in una dll se per caso puo' interferire).
Ho visto anche che esistono delle funzioni per registrare un oggetto com nella rot ma non ho bene capito il funzionamento , come trovo un instanza nella rot?
insomma ho le idee un po confuse.
grazie