Newsgroup: it.comp.programmare.win32
Titolo: COM e OLE

Ciao a tutti, sono nuovo del NG e non ho avuto tempo di leggere tutti i
post precedenti, perciò *spero* di non ripetere una domanda già fatta. 
Mi trovo nella necessità di leggere e scrivere documenti Word ed Excel da
programmi esterni, e pensavo di usare OLE/COM per utilizzare Word ed Excel
come Doc server. Solo che vorrei farlo da C++. E' una buona scelta o è
meglio VB? Esiste un tutorial che spieghi in poco tempo questi argomenti
(ho una certa confidenza con COM, nessuna con OLE)? 
grazie.
Roberto Cavada

 wrote in message
01bf306d$4dcfdd60$7f631497@silvia...

Visual C++ va benissimo (quasi altrettanto di Visual Basic), perche`
offre funzionalita` apposite per fare da cliente COM in modo assai
semplice; altri C++ saranno comunque usabili in qualche modo (ma
ti farebbe comodo qualche strumento per generare i file di header
dalle type libraries...).  Adattissimi anche Perl, Python, VBScript,
JScript, e certamente molti altri linguaggi ancora.
Io ho scritto vari articoli introduttivi a vari usi del COM (e in questo
caso di Automation) ma: sono in inglese, non sono al momento tutti
in linea, e nel caso di quest'ultima specifica problematica mi pare che
gli esempi che ho portato nell'articolo usino solo il linguaggio di
scripting "GPL" che non e` al momento molto noto.  Se c'e` abbastanza
interesse, potrei sempre tradurre (a) in italiano e (b) ad un linguaggio
di scripting piu` noto (escluderei pero` il C++ "nudo", perche` il
lavoro di riscrittura sarebbe un po' troppo... perl, o Python, o Visual
C++, ecc, andrebbero tutti bene); dopodiche` potrei postare qui o
mettere sulla mia homepage.
Gradirei feedback su questo gruppo (NON nella mia mailbox, per
favore -- i voti che invadono la mia mailbox li contero`a rovescia:-)
per giudicare la priorita` relativa di questo, rispetto al tutorial
Win32 che sto mettendo in linea sulla mia homepage a supereva...
tutto non posso fare allo stesso tempo, quindi devo prioritizzare.
Alex

 Roberto Cavada
hi,
forse è meglio chiarire un po di cose :
la maniera più sempice per accedere a un server COM automation da VC e con
le MFC
dal Class Wizard ( CW->Add Class -> from type library ).
Questo metodo è piu o meno equivalente a usare VB cioè usi il "dispatch"
mappato staticamente.
In pratica sei obbligato ad avere le MFC e ti posso assicurare che quando si
inizia a parlare di COM
non sono proprio il massimo.
Comunque sempre meglio che usare un linguaggio di script che usa il dispatch
dinamicamente.
La soluzione migliore a mio parere e' di usare la direttiva #import che è
stata introdotta dal VC 5 e ATL per fare
tutti i tui giochetti. Solo in questo modo riesci ad accedere
all'interfaccia  "Unknown " direttamente.
Un'altro vantaggio di questo metodo è che non devi avere per forza il "tlb"
ma puoi fare riferimento direttamente al
server com ( exe e dll ).
8
P.S.
sto ancora ripensando alla tua affermazione che conosci COM ma non OLE,
secondo me non hai proprio le idee
chiare.

 chiare.
Perche`?  OLE (nell'attuale, corretto uso della terminologia) si riferisce
al solo "Object Linking and Embedding", che e` una specifica e assai
particolare applicazione della tecnologia COM, che di usi ne ha anche tanti
ma tanti altri.  E` dunque possibilissimo essere espertoni di COM eppure
masticare poco di OLE, considerando l'inverosimile schiera di interfacce
che l'OLE in tutto il suo "splendore" richiede.
In passato il marketing Microsoft ha fatto non poca confusione, usando
sia "OLE", sia in seguito "Active/X", "come se" fossero piu` o meno la stessa
cosa di "COM" (c'e` ancora chi parla di "OLE Automation", mentre oggi si
chiama solo "Automation", e restano varie tracce terminologiche di "Active/X",
magari depurato del "/X", in tecnologie COM come "Active Scripting"...:-).
[delle varie idiozie del marketing M$, questa e` stata forse la peggiore, e
l'unica vera contendente e` la serie di programmini gratuiti come Outlook
Express, Front Page Express, ecc, ciascuno dei quali non ha praticamente
nulla in comune con i vari Outlook, FrontPage, ecc... chi pensa che siano
"geni del male" sbaglia di certo almeno sulla prima meta` dell'idioma!-)].
Alex

 ma tanti altri.  E` dunque possibilissimo essere espertoni di COM eppure
cut...
non è questo il punto, vista la struttura della domanda mi sembrava
azzardato dire
di avere una "una certa confidenza con com" (forse con le seriali ;-) )
8