ESEMPIO: Comaddin.exe Office 2000 componente aggiuntivo COM scritto in Visual c ++

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 230689
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
Comaddin.exe è un file eseguibile autoestraente che spiega come generare un componente aggiuntivo COM (Component Object Model) per Office 2000 o Office XP utilizzando il linguaggio Visual C++. Un componente aggiuntivo COM è un server COM in-process progettato in modo specifico per essere eseguito nel contesto di una o più applicazioni di Office 2000 o Office XP. I componenti aggiuntivi COM consentono di estendere l'ambiente Office in modo flessibile, efficiente e uniforme.

I componenti aggiuntivi COM sono generati tramite qualsiasi linguaggio di programmazione in grado di creare componenti COM, come Visual Basic, C/C++, C# e le edizioni Office 2000 Developer o Office XP Developer di Microsoft Visual Basic Applications Edition (VBA).

Il file di esempio descritto in questo articolo spiega la procedura necessaria per generare un componente aggiuntivo COM in Visual C++. Crea una semplice shell di componente aggiuntivo che è possibile ampliare per generare un componente aggiuntivo di Office personalizzato.
Informazioni
Il seguente file è disponibile per il download dall'Area download Microsoft:
Data di rilascio: 4 gennaio 1999

Per ulteriori informazioni su come scaricare file di supporto Microsoft, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
119591Come ottenere file di supporto Microsoft dai servizi online
Microsoft analizzati questo file per individuare eventuali virus. Microsoft ha utilizzato il software antivirus più recente disponibile alla data di pubblicazione del file. Il file è archiviato in server con protezione avanzata per impedire modifiche non autorizzate al file.

Informazioni sul file di esempio

Comaddin.exe estrae i file seguenti in una cartella di propria scelta:
   FileName                    Size   ----------------------------------------      TestAddin.dsw               541 bytes   TestAddin.dsp               4.11 KB    ComAddin.h                  6.19 KB   ComAddin.cpp                8.38 KB   ComAddin.def                205 bytes   MyAddin.cpp                 10.6 KB   MyAddinCF.cpp               2.18 KB   BttnHandler.cpp             6.27 KB

IDTExensibility2

Perché un oggetto COM possa essere un componente aggiuntivo di Office, deve supportare l'interfaccia IDTExensibility2 in base a quanto descritto nella libreria di tipi Progettazione componenti aggiuntivi Microsoft (Msaddndr.dll). L'interfaccia è già stata dichiarata in ComAddin.h quindi non è necessario eseguire alcuna importazione. Tutti i componenti aggiuntivi COM ereditano proprietà da tale interfaccia e devono implementarne i relativi cinque metodi:
  • OnConnection
  • OnDisconnection
  • OnAddInsUpdate
  • OnStartupComplete
  • OnBeginShutdown
Quando un componente aggiuntivo COM viene caricato per la prima volta, viene eseguita una chiamata QueryInterface per IDTExtensibility2. Se la chiamata non va a buon fine, il componente aggiuntivo non viene caricato. Se la chiamata va a buon fine, l'applicazione host utilizza il riferimento restituito per segnalare al componente aggiuntivo le modifiche apportate al proprio stato. Segue la descrizione di ciascun metodo.

OnConnection

L'evento OnConnection viene generato ogni volta che il componente aggiuntivo COM è connesso. Il componente aggiuntivo può essere connesso all'avvio, dall'utente finale oppure attraverso l'automazione. Se OnConnection restituisce S_OK, il componente aggiuntivo viene considerato caricato. Se viene restituito qualsiasi altro valore, l'applicazione host rilascia immediatamente il proprio riferimento al componente aggiuntivo e l'oggetto viene distrutto.

OnConnection accetta i seguenti quattro parametri:
  • Application - riferimento all'interfaccia IDispatch dell'applicazione host.
  • ConnectMode - Costante che specifica la modalità di connessione del componente aggiuntivo.
    • ext_cm_AfterStartup – avviato dall'utente finale dalla finestra di dialogo COM aggiuntivi del componente.
    • ext_cm_CommandLine - Connesso dalla riga di comando.
    • ext_cm_External - Connesso da un'applicazione esterna tramite l'automazione.
    • ext_cm_Startup - avviato dall'host all'avvio dell'applicazione. Questo comportamento può essere controllato da un'impostazione del Registro di sistema.
  • AddInInst - Riferimento all'oggetto COMAddIn che fa riferimento al componente aggiuntivo nell'insieme COMAddIns relativo all'applicazione host.
  • Custom - Matrice di varianti che può contenere dati definiti dall'utente.


OnDisconnection

L'evento OnDisconnection viene generato quando il componente aggiuntivo viene disconnesso e appena prima che Scarica dalla memoria. Il componente aggiuntivo dovrebbe eseguire un eventuale rilascio delle risorse in questo evento e ripristinare eventuali modifiche apportate all'applicazione host.

OnDisconnection accetta i seguenti due parametri:
  • RemoveMode - Costante che specifica la modalità di disconnessione del componente aggiuntivo.
    • ext_dm_HostShutdown - Disconnesso alla chiusura dell'applicazione host.
    • ext_dm_UserClosed - Disconnesso dall'utente finale o da un controller di automazione.
  • Custom - Matrice di varianti che può contenere dati definiti dall'utente.


OnAddInsUpdate

L'evento di OnAddInsUpdate viene generato quando cambia il set di componenti aggiuntivi di COM registrati. In altre parole, ogni volta che un componente aggiuntivo COM viene installato o rimosso dall'applicazione host, viene generato un evento OnAddInsUpdate.


OnStartupComplete e OnBeginShutdown

Gli eventi OnStartupComplete e OnBeginShutdown segnalano al componente aggiuntivo il momento in cui l'applicazione host ha lasciato oppure sta entrando in uno stato in cui l'intervento dell'utente va evitato perché l'applicazione è impegnata in operazioni di caricamento o scaricamento dalla memoria. L'evento OnStartupComplete viene generato solo se la connessione del componente aggiuntivo è avvenuta durante l'avvio e l'evento OnBeginShutdown viene generato solo se la disconnessione è stata eseguita dall'host durante l'arresto.

Poiché l'interfaccia utente per l'applicazione host è pienamente attiva quando vengono generati questi eventi, questi potrebbero rappresentare l'unico modo per eseguire determinate azioni che altrimenti risulterebbero non disponibili da OnConnection e OnDisconnection.

Registrazione del componente aggiuntivo COM

Oltre alla normale registrazione COM, è necessario che un componente aggiuntivo COM si registri con tutte le applicazioni di Office 2000 in cui viene eseguito. Per registrarsi con una determinata applicazione, il componente aggiuntivo crea una sottochiave, utilizzando il proprio ProgID come nome per la chiave, nella seguente posizione:

HKEY_CURRENT_USER\Software\Microsoft\Office\<appname>\Addins\<addinprogid>
In questa posizione il componente aggiuntivo può specificare i valori sia per il nome descrittivo visualizzato che per la descrizione completa. Il componente aggiuntivo dovrebbe inoltre specificare un comportamento di caricamento preferito utilizzando un valore DWORD denominato "LoadBehavior" Questo valore determina come il componente aggiuntivo verrà caricato dall'applicazione host ed è costituito da una combinazione dei valori seguenti:
  • 0x00 = Disconnect - Non viene caricato.
  • 0x01 = Connected - Viene caricato.
  • 0x02 = Bootload - Viene caricato all'avvio dell'applicazione.
  • 0x08 = DemandLoad - Viene caricato solo se richiesto dall'utente.
  • 0x16 = ConnectFirstTime - Viene caricato solo una volta (all'avvio successivo).
Il valore che viene generalmente specificato è 0x03 (Connected | Bootload).

I componenti aggiuntivi che implementano IDTExtensibility2 devono inoltre specificare un valore DWORD denominato "CommandLineSafe" per indicare se possono eseguire senza problemi operazioni che non supportano un'interfaccia utente. Il valore 0x00 significa False, 0x01 significa True. Dal momento che con questo file di esempio viene visualizzato un messaggio, non è indicato per l'esecuzione dalla riga di comando, di conseguenza imposta il valore su 0x00.

Guida introduttiva

Per iniziare a scrivere componenti aggiuntivi, compilare il progetto di esempio, eseguire regsvr32.exe sulla DLL generata e avviare Microsoft Word, Excel, Powerpoint e/o Frontpage 2000. Durante l'avvio del componente aggiuntivo verrà visualizzata una finestra di dialogo in cui si comunica il nome dell'applicazione aperta.

(c) 1999 Microsoft Corporation, tutti i diritti riservati. Con il contributo di Richard R. Taylor, Microsoft Corporation.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 230689 - Ultima revisione: 12/05/2015 14:23:52 - Revisione: 5.4

Microsoft Excel 2000 Standard Edition, Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 6.0 Enterprise Edition, Microsoft Visual C++ 5.0 Professional Edition, Microsoft Visual C++ 6.0 Professional Edition, Microsoft Visual C++, 32-bit Learning Edition 6.0, Microsoft Office XP Developer Edition, Microsoft Office 2000 Developer Edition, Microsoft FrontPage 2002 Standard Edition, Microsoft FrontPage 2000 Standard Edition, Microsoft PowerPoint 2002 Standard Edition, Microsoft PowerPoint 2000 Standard Edition, Microsoft Word 2002 Standard Edition, Microsoft Word 2000 Standard Edition, Microsoft Excel 2002 Standard Edition, Microsoft Outlook 2000 Standard Edition, Microsoft Outlook 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbdownload kbautomation kbfile kbinfo kbsample KB230689 KbMtit
Feedback