Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 e OpenOffice

Ciao a tutti... un post simile a questo l'ho già lasciato nel NG di
OpenOffice... ma pochi sanno poco di VB6...
Qualcuno di voi sa se esiste qualche documento o reference che faccia
riferimento all'utilizzo di OpenOffice.Calc e/o OpenOffice.Writer da
VB6? (magari in italiano)...
Qualche input l'ho trovato girando il web
http://www.oooforum.org/forum/viewtopic.phtml?p=14408#14408
http://udk.openoffice.org/common/man/tutorial/office_automation.html
Ma si tratta di brevi esempi (funzionanti, per carità)... ma non
riesco a trovare nessuna reference completa per VB6 (c'e' per Java e
C++ sia HTML che PDF)
Mi va bene anche la segnalazione di un libro/manuale da acquistare in
libreria...
Grazie
Mauro

 VB6? (magari in italiano)...
Credo che le ultime versioni di OO contengano anche le librerie COM.
Potresti aggiungerle tra i riferimenti, così avresti l'intellisense, che non 
è una guida completa ma è decisamente meglio che scrivere alla cieca.
Ciao

 Ciao
Mah... in realtà è stata la prima cosa che ho provato (ancora prima
di snavigazzare il web alla ricerca di informazioni), ma non c'e' nulla
tipo OpenOffice, Sun, Writer o Calc... mi sono passato tutto l'elenco
dei riferimenti disponibili... ciccia... ho anche provato a sfogliare
le cartelle di OpenOffice... ma ovviamente ci sono decine di dll...
sparare a caso non mi sembrava "carino"
Ovunque il metodo indicato è quello di istanziare il ServiceManager,
il Desktop per poi aprire un documento
Set OServiceManager = CreateObject("com.sun.star.ServiceManager")
Set ODesktop =
OServiceManager.createInstance("com.sun.star.frame.Desktop")
Set ODocument = ODesktop.loadComponentFromURL("private:factory/scalc",
"_blank", 0, Args())
(in questo caso un documento vuoto di Calc)... Da nessuna parte viene
indicato un riferimento o un componente...
magari c'e'... ma chissà come si chiama!... non c'e' la possibilità
di elencare tutti i componenti in base all'applicazione / percorso di
appartenneza?
Ciao
Mauro

 ...
Ciao!
Potresti provare a guardare nel registro di sistema. Per esempio con 
Word hai che:
in CLASSES_ROOT\Word.Document\CLSID c'è 
{00020906-0000-0000-C000-000000000046}
Quindi guardi in 
CLASSES_ROOT\CLSID\{00020906-0000-0000-C000-000000000046} e potresti 
trovare quale DLL/EXE ActiveX potrebbe fare al caso tuo (magari nella 
chiave InprocServer32 o in LocalServer32
Poi referenzi da VB6 tale DLL. Non so se funziona, ma tanto vale provare...
Ciao
    Michele

 "_blank", 0, Args())
Se funziona la CreateObject() ci devono essere anche i 
riferimenti/componenti, che tra l'altro mi pare di aver visto in un altro Pc 
(appena riesco controllo e ti faccio sapere).
Probabilmente non si chiama com.sun.star.frame.Desktop, ma come diceva 
Michele, mal che vada ti cerchi nel registro "com.sun.star.frame.Desktop", 
vedi a che dll è legato e la ricerchi manualmente dalla finestra dei 
riferimenti.
Comunque dovresti assicurarti di avere installato i componenti COM/ActiveX 
con il setup di OO.
Ciao 


(inizio con Grazie)
Spero di aver capito bene: dal Regedit ho trovato
CLASSES_ROOT\opendocument.CalcDocument.1\CLSID =
{7FA8AE11-B3E3-4D88-AABF-255526CD1CE8}
e sotto CLASSES_ROOT\CLSID\{7FA8AE11-B3E3-4D88-AABF-255526CD1CE8} c'e'
la chiave LocalServer32 = D:\Programmi\OpenOffice.org
2.0\program\soffice.exe -nodefault -nologo
(mentre la InprocServer32 non c'e'...)
in effetti quando istanzi
Set OServiceManager = CreateObject("com.sun.star.ServiceManager")
nel Task Manager è proprio soffice.exe che "compare"...
Questo cosa ti suggerisce?
Mauro

 Questo cosa ti suggerisce?
Che OpenOffice si appoggia ancora a StarOffice (s+office) e che 
LocalServer32 indica un componente com out-of-process (contrapposto a un 
in-process, come indicherebbe invece "Inproc"), il che è avallato dal fatto 
che soffice è un .exe e quindi verosimilmente proprio un out of process 
ActiveX-exe.
Il concetto di partenza comunque non cambia.
Ciao 

 Il concetto di partenza comunque non cambia.
Se intendi dire di provare a fare il riferimento a soffice.exe ... già
provato ma picche...