Se si è seriamente interessati all'apprendimento COM, la "COM essenziale" di Don Box è sicuramente un "must read" assoluto. COM può essere fonte di confusione e, a mio modesto parere, Don Box è una delle poche persone che in realtà ha "capito".
Il codice di esempio in "Essential COM" è in C++. Non troverai molti libri che supportano COM in C. Puoi scrivere COM in C, ma sarà molto, molto doloroso. COM è ottimizzata per lo sviluppo C++.
Questo libro non è perfetto né "completo". Ci sono alcune aree (concesse, un po 'esoteriche) che il libro sfiora. Ad esempio, il libro ha circa 1 1/2 pagine su "moniker" (non ho mai visto un trattamento di moniker che mi soddisfi). Considero questo libro come il libro fondamentale.
Secondo, nella vita reale è probabile che si desideri utilizzare una libreria di supporto come ATL, anziché scrivere direttamente la colla COM. Esistono troppi modi per commettere errori impercettibili in COM anche nell'impostazione di base. ATL ti darà buoni schemi e implementerà il codice noioso per te. Nell'apprendimento, è meglio usare semplicemente il C++.
Ci sono molti libri su ATL e molti sono abbastanza buoni. Capisco che ATL è cambiato un po 'dai vecchi tempi di VC++ 6, ma non ho conoscenze di prima mano lì: purtroppo, la maggior parte del codice COM con cui lavoro è bloccato per sempre al sapore di C++ in VC6 .
Assicurati che tutto il libro che ricevi sia scritto per la versione di Visual Studio e/o ATL che stai pianificando di utilizzare.
Alcuni retroscena sui libri COM:
Nota che ci sono un sacco di libri là fuori che fraintendono COM, o si concentrano sulle cose sbagliate. I libri più vecchi sono peggio in questo senso. Alcuni dei primi libri hanno trattato COM come poco più di un dettaglio idraulico necessario per far funzionare OLE ("Object Linking and Embedding", questo è ciò che consente di trascinare e rilasciare un intervallo di fogli elettronici in un documento Word). Per questo motivo, molto materiale là fuori è molto confuso. Ci è voluto un po 'di tempo prima che le persone si rendessero conto che OLE non era così importante e che COM era veramente.
Quando Don Box pubblicò "Essential COM", le crepe sulle fondamenta della COM avevano iniziato a diventare evidenti. Non c'è nulla di terribilmente imperfetto nella COM, ma i bisogni della comunità di sviluppo si sono evoluti e superati ciò che la COM potrebbe fare senza un serio revamping.
.NET è nato da questo sforzo per risolvere i limiti di COM, soprattutto nell'area "informazioni sul tipo". Solo pochi anni dopo la pubblicazione di "Effective COM", l'attenzione della comunità si è spostata su .NET. Per questo motivo, un buon materiale di formazione COM è ora e probabilmente rimarrà per sempre limitato.
Quindi, COM non è danneggiato e funziona perfettamente per le cose per cui è utilizzato (ecco perché Explorer lo utilizza ancora). Non è più la soluzione migliore per molti dei problemi che devono essere risolti oggi.
In sintesi:
mi raccomando "COM Essential" per le basi. Quindi, uno qualsiasi dei molti buoni libri ATL disponibili (nessuna preferenza forte lì), e quindi utilizzare altre risorse come MSDN o, ovviamente, Stack Overflow, per coprire aree che sono di particolare interesse per voi.
Se preferisci evitare di fare affidamento sulle risorse della varietà dead-tree, vai avanti e impara ATL dal web. Ma alcuni libri valgono la pena di leggere alla vecchia maniera - e "Essential COM" è uno di questi.
Buona fortuna.
A proposito, non scoraggiarti della quantità di apprendimento suggerita dalle nostre risposte. Sembra che tu stia cercando di scrivere un client COM piuttosto che un componente COM. I client COM sono più facili da scrivere di ordine di grandezza rispetto ai componenti COM. Ti divertirai. –