Come creare un componente aggiuntivo COM di Office 2000 in Visual Basic

Traduzione articoli Traduzione articoli
Identificativo articolo: 238228 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Microsoft Office 2000 e versioni successive supportano una nuova architettura uniforme di progettazione per la creazione di componenti aggiuntivi per migliorare e controllare le applicazioni Office. Questi componenti aggiuntivi sono denominati componenti aggiuntivi COM. Questo articolo viene spiegato come creare una Add-In COM utilizzando Visual Basic.

Informazioni

Add-In COM Ŕ un server COM inprocess (una DLL ActiveX) che implementa l'interfaccia IDTExensibility2 come descritto in un componente aggiuntivo di progettazione libreria dei tipi Microsoft (Msaddndr). Tutti i componenti aggiuntivi COM ereditano da questa interfaccia e devono implementarne i relativi cinque metodi.

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 o tramite l'automazione. Se OnConnection ha esito positivo, il componente aggiuntivo viene considerato caricato. Se viene restituito un errore, l'applicazione host rilascia immediatamente il riferimento al componente aggiuntivo e l'oggetto viene eliminato.

OnConnection accetta i seguenti quattro parametri:
  • Application - riferimento all'oggetto applicazione host.
  • ConnectMode - costante che specifica la modalitÓ di connessione del componente aggiuntivo.
    • ext_cm_AfterStartup ? avviato dall'utente finale dalla finestra di dialogo componenti aggiuntivi COM.
    • ext_cm_CommandLine - connesso dalla riga di comando. (Non si applica alla creazione di componenti aggiuntivi COM per applicazioni di Office).
    • ext_cm_External ? connesso da un'applicazione esterna tramite l'automazione. (Non si applica alla creazione di componenti aggiuntivi COM per applicazioni di Office).
    • ext_cm_Startup ? avviato dall'host all'avvio dell'applicazione. (Questo comportamento Ŕ controllato dall'impostazione nel Registro di sistema).
  • AddInInst ? riferimento all'oggetto COMAddIn che fa riferimento a questo componente aggiuntivo nell'insieme COMAddIns per l'applicazione host.
  • Custom ? matrice di varianti che pu˛ contenere dati definiti dall'utente.

OnDisconnection

L'evento OnDisconnection viene generato quando il componente aggiuntivo COM Ŕ disconnesso e appena prima che venga scaricato dalla memoria. Il componente aggiuntivo deve eseguire le operazioni di pulitura delle risorse in questo evento e ripristinare le modifiche apportate all'applicazione host.

OnDisconnection accetta due parametri seguenti:
  • RemoveMode-costante che specifica la modalitÓ della disconnessione.
    • ext_dm_HostShutdown ? Disconnesso alla chiusura dell'applicazione host.
    • ext_dm_UserClosed ? disconnesso dall'utente finale o un controller di automazione.
  • Custom ? matrice di varianti che pu˛ contenere dati definiti dall'utente.

OnAddInsUpdate

L'evento OnAddInsUpdate viene generato quando viene modificato l'insieme di componenti aggiuntivi COM registrati. In altre parole, ogni volta che un componente aggiuntivo COM Ŕ installato o rimosso dall'applicazione host, questo evento viene generato.

OnStartupComplete e OnBeginShutdown

I metodi OnStartupComplete e OnBeginShutdown vengono chiamati quando l'applicazione host ha lasciato oppure sta entrando in uno stato in cui l'interazione dell'utente devono essere evitate perchÚ l'applicazione Ŕ in fase di caricamento o la rimozione dalla memoria. OnStartupComplete viene chiamato solo se il componente aggiuntivo Ŕ avvenuto durante l'avvio e OnBeginShutdown viene chiamato solo se il componente aggiuntivo viene disconnesso 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 sarebbero disponibili da OnConnection e OnDisconnection.

Registrazione del componente aggiuntivo COM

Oltre alla normale registrazione COM, richiede di registrarsi con ogni applicazione di Office in cui viene eseguito un componente aggiuntivo COM. Per registrarsi con una determinata applicazione, il componente aggiuntivo deve creare una sottochiave, utilizzando il proprio ProgID come nome per la chiave, nella seguente posizione:
HKEY_CURRENT_USER\Software\Microsoft\Office\<OfficeApp>\Addins\<ProgID>
Il componente aggiuntivo pu˛ fornire i valori in questa posizione per un nome descrittivo e una descrizione completa. Inoltre, il componente aggiuntivo deve specificare il comportamento di caricamento preferito utilizzando un valore DWORD denominato "LoadBehavior". Questo valore determina il modo in cui il componente aggiuntivo viene caricato dall'applicazione host ed Ŕ costituito da una combinazione dei seguenti valori:
  • 0 = Disconnect ? non viene caricato.
  • 1 = Connected ? viene caricato.
  • 2 = Bootload ? viene caricato all'avvio dell'applicazione.
  • 8 = DemandLoad - caricato solo se richiesto dall'utente.
  • 16 = ConnectFirstTime - viene caricato una sola volta (all'avvio successivo).
Il valore specificato Ŕ 0x03 (Connected | Bootload).

Componenti aggiuntivi che implementano IDTExtensibility2 devono inoltre specificare un valore DWORD denominato "CommandLineSafe" per indicare se sono sicuri per le operazioni che non supportano un'interfaccia utente di valore. Il valore 0x00 significa False, 0x01 significa True.

Creazione di un componente aggiuntivo COM

╚ possibile creare un COM Add-In uno dei tre metodi menzionati di seguito:

Creazione di un componente aggiuntivo COM utilizzando il modello di componente aggiuntivo Com

Se si dispone di Microsoft Office 2000 Developer o Microsoft Office XP Developer e Visual Basic 6.0, il modo pi¨ semplice per creare un COM Add-in consiste nell'utilizzare il modello di vbp aggiungere COM. Questo progetto si trova nella sottocartella ODETools\V9\Samples\OPG\Samples\CH11\VB_COM_AddIn del CD di Office 2000 Developer. Copiare i file in questa cartella di Visual Basic 6.0 Template\Projects, che in genere Ŕ C:\Program Files\Microsoft Visual Studio\VB98\Template\Projects di. Per assicurarsi che il modello verrÓ visualizzato nella finestra di dialogo Nuovo progetto di Visual Basic 6.0, copia del progetto di modello in questa posizione. Vedere il capitolo 11 del manuale del programmatore di Microsoft Office 2000 Visual Basic per ulteriori informazioni su questo modello e la creazione di componenti aggiuntivi COM.

Creazione di un componente aggiuntivo COM utilizzando Progettazione di un componente aggiuntivo di Visual Basic 6

Se si dispone solo in Microsoft Visual Basic 6.0 installato e si desidera utilizzare un wrapper in modo che non sia necessario implementare direttamente IDTExtensibility2, Ŕ possibile utilizzare la stessa progettazione di componente aggiuntivo che consente di creare un componente aggiuntivo di VB6 seguire questi passaggi per creare tale componente aggiuntivo per Microsoft Excel 2000 o 2002:
  1. Avviare Microsoft Visual Basic 6.0 e selezionare il componente aggiuntivo come tipo di progetto. VerrÓ aggiunta una classe di progettazione per il progetto (Connect) e un form (frmAddin).
  2. Aprire la finestra di Progettazione per la connessione e selezionare Microsoft Excel dall'elenco a discesa applicazione .
  3. Nell'elenco a discesa Il comportamento di caricamento iniziale , selezionare avvio.
  4. Rimuovi frmAddin dal progetto.
  5. Nella finestra progetto , l'elemento di connessione e scegliere Visualizza codice.
  6. Rimuovere tutto il codice nella finestra del codice della finestra di progettazione. Questo codice funziona per i componenti aggiuntivi VB ma non Office add-in.
  7. Nella finestra di progettazione, aggiungere il codice riportato di seguito:
       Option Explicit
    
       Dim oXL As Object
       Dim WithEvents MyButton As Office.CommandBarButton
    
       Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
        ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
        ByVal AddInInst As Object, custom() As Variant)
          On Error Resume Next
          MsgBox "My Addin started in " & Application.Name
       
          Set oXL = Application
       
          Set MyButton = oXL.CommandBars("Standard").Controls.Add(1)
             With MyButton
                .Caption = "My Custom Button"
                .Style = msoButtonCaption
    
              ' The following items are optional, but recommended. 
              ' The Tag property lets you quickly find the control 
              ' and helps MSO keep track of it when there is more than
              ' one application window visible. The property is required
              ' by some Office applications and should be provided.
    
                .Tag = "My Custom Button"
     
              ' The OnAction property is optional but recommended. 
              ' It should be set to the ProgID of the add-in, such that if
              ' the add-in is not loaded when a user presses the button,
              ' MSO loads the add-in automatically and then raises
              ' the Click event for the add-in to handle. 
    
                .OnAction = "!<" & AddInInst.ProgId & ">"
    
                .Visible = True
             End With
       
       End Sub
    
       Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As _
          AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
          On Error Resume Next
          MsgBox "My Addin was disconnected by " & _
             IIf(RemoveMode = ext_dm_HostShutdown, _
             "Excel shutdown.", "end user.")
          
          MyButton.Delete
          Set MyButton = Nothing
          Set oXL = Nothing
        End Sub
    
       Private Sub MyButton_Click(ByVal Ctrl As Office.CommandBarButton, _
         CancelDefault As Boolean)
          MsgBox "Our CommandBar button was pressed!"
       End Sub
  8. Salvare il progetto e creare il MyAddIn. La finestra di progettazione verrÓ registrato il componente aggiuntivo per l'utente.
  9. Avviare Microsoft Excel e si noterÓ una finestra di messaggio quando il componente aggiuntivo viene caricato e scaricato. Sulla barra degli strumenti standard, sarÓ necessario un nuovo pulsante con l'etichetta My Custom Button che il componente aggiuntivo consente di gestire quando selezionato.

Creazione di un componente aggiuntivo COM utilizzando implements

Pur non essendo semplice, Ŕ possibile creare un COM Add-In utilizzando Microsoft Visual Basic 5.0 e la parola chiave Implements per implementare direttamente l'interfaccia IDTExtensibility2. L'unico svantaggio di questo approccio Ŕ la registrazione. PoichÚ Microsoft Visual Basic non Ŕ in grado di aggiungere le chiavi necessarie per registrare il componente aggiuntivo con Office, sarÓ necessario eseguire questa operazione separatamente (in un'utilitÓ di installazione personalizzata o utilizzando uno script REG).

Tuttavia, il vantaggio di utilizzare Implements Ŕ pi¨ diretto ed efficiente rispetto all'utilizzo della finestra di progettazione che consente di creare un singolo oggetto COM che pu˛ essere utilizzate in pi¨ applicazioni di Office (invece di creare un oggetto Connect separato per ogni applicazione che si desidera utilizzare).

Ecco i passaggi per la scrittura che implementa un oggetto componente aggiuntivo utilizzando:
  1. Aprire Visual Basic e creare un nuovo progetto DLL ActiveX. Nome del progetto MyCOMAddine il nome pubblico della classe Connect.
  2. Nella finestra di dialogo riferimenti (progetto | Riferimenti), aggiungere un riferimento alla libreria di oggetti di Microsoft Office 9.0 (o 10.0 per Office XP) e la libreria dei tipi Microsoft Add-In Designer. Se non si trova il componente aggiuntivo di progettazione nell'elenco riferimenti, dovrebbe cercare Msaddndr o Msaddndr, in genere si trova nella cartella "C:\Programmi\File C:\Program comuni\Finestra".
  3. Nella finestra del codice per la connessione, aggiungere quanto segue:
       Option Explicit
       Implements IDTExtensibility2
    
       Dim oHostApp As Object
       Dim WithEvents MyButton As Office.CommandBarButton
    
      Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, _
         ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
    
         ByVal AddInInst As Object, custom() As Variant)
      
          On Error Resume Next
        ' Set a reference to the host application...
          Set oHostApp = Application
       
        ' If you aren't in startup, then manually call OnStartupComplete...
          If (ConnectMode <> ext_cm_Startup) Then _
             Call IDTExtensibility2_OnStartupComplete(custom)
          
       End Sub
    
       Private Sub IDTExtensibility2_OnStartupComplete(custom() As Variant)
          Dim oCommandBars As Office.CommandBars
          Dim oStandardBar As Office.CommandBar
       
          On Error Resume Next
        ' Set up a custom button on the "Standard" commandbar...
          Set oCommandBars = oHostApp.CommandBars
          If oCommandBars Is Nothing Then
           ' Outlook has the CommandBars collection on the Explorer object
             Set oCommandBars = oHostApp.ActiveExplorer.CommandBars
          End If
       
          Set oStandardBar = oCommandBars.Item("Standard")
          If oStandardBar Is Nothing Then
           ' Access names it's main toolbar Database
    
             Set oStandardBar = oCommandBars.Item("Database")
          End If
       
        ' In case the button was not deleted, use the exiting one...
          Set MyButton = oStandardBar.Controls.Item("My Custom Button")
             If MyButton Is Nothing Then
    
                Set MyButton = oStandardBar.Controls.Add(1)
                With MyButton
                   .Caption = "My Custom Button"
                   .Style = msoButtonCaption
     
              ' The following items are optional, but recommended. 
              ' The Tag property lets you quickly find the control 
              ' and helps MSO keep track of it when there is more than
              ' one application window visible. The property is required
              ' by some Office applications and should be provided.
    
                .Tag = "My Custom Button"
     
              ' The OnAction property is optional but recommended. 
              ' It should be set to the ProgID of the add-in, such that if
              ' the add-in is not loaded when a user presses the button,
              ' MSO loads the add-in automatically and then raises
              ' the Click event for the add-in to handle. 
    
                   .OnAction = "!<MyCOMAddin.Connect>"
    
                   .Visible = True
                End With
             End If
     
        ' Display a simple message to know which application you started in...
          MsgBox "Started in " & oHostApp.Name & "."
    
          Set oStandardBar = Nothing
          Set oCommandBars = Nothing
       End Sub
    
       Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode As _
         AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
    
          On Error Resume Next
          If RemoveMode <> ext_dm_HostShutdown Then _
             Call IDTExtensibility2_OnBeginShutdown(custom)
          
          Set oHostApp = Nothing
    
       End Sub
    
       Private Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant)
          On Error Resume Next
        ' Notify the user you are shutting down, and delete the button...
          MsgBox "Our custom Add-In is unloading."
          MyButton.Delete
          Set MyButton = Nothing
       End Sub
    
       Private Sub MyButton_Click(ByVal Ctrl As Office.CommandBarButton,    CancelDefault As Boolean)
          MsgBox "Our CommandBar button was pressed!"
       End Sub
    
       Private Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant)
          'You do nothing if this is called, but you need to
          'add a comment so Visual Basic properly implements the function...
       End Sub
  4. Salvare il progetto e creare la MyCOMAddin.dll. Tuttavia, prima di utilizzata il componente aggiuntivo Ŕ necessario associare ogni applicazione di Office che si desidera venga eseguita in. Nel mondo reale, un'utilitÓ di installazione pu˛ farlo quando la DLL viene installata. In questo esempio, si chiamerÓ una funzione di registrazione direttamente dall'IDE di Visual Basic.
  5. Aggiungere un nuovo modulo al progetto. Nel codice di Module1 aggiungere quanto segue:
       Option Explicit
    
       Private Declare Function RegCreateKeyEx Lib "advapi32.dll" _
       Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _
       ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As _
       Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, _
       phkResult As Long, lpdwDisposition As Long) As Long
       
       Private Declare Function RegSetValueEx Lib "advapi32.dll" _
       Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As _
       String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, _
       ByVal cbData As Long) As Long
       
       Private Declare Function RegDeleteKey Lib "advapi32.dll" _
       Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) _
       As Long
       
       Private Declare Function RegCloseKey Lib "advapi32.dll" _
       (ByVal hKey As Long) As Long
    
       Private Const HKEY_CURRENT_USER = &H80000001
       Private Const KEY_ALL_ACCESS = &H1F0037
       Private Const REG_CREATED_NEW_KEY = &H1
       Private Const REG_SZ = 1
       Private Const REG_DWORD = 4
    
       'These are the settings for your Add-in...
       Private Const PROGID As String = "MyCOMAddin.Connect"
       Private Const DESCRIPTION As String = "My VB5/6 COM Add-In Sample"
       Private Const LOADBEHAVIOR As Long = 3
       Private Const SAFEFORCOMMANDLINE As Long = 0
    
    
       Public Sub RegisterAll()
          RegisterOfficeAddin "Access"
          RegisterOfficeAddin "Excel"
          RegisterOfficeAddin "FrontPage"
          RegisterOfficeAddin "Outlook"
          RegisterOfficeAddin "PowerPoint"
          RegisterOfficeAddin "Word"
       End Sub
    
       Public Sub UnregisterAll()
          UnRegisterOfficeAddin "Access"
          UnRegisterOfficeAddin "Excel"
          UnRegisterOfficeAddin "FrontPage"
          UnRegisterOfficeAddin "Outlook"
          UnRegisterOfficeAddin "PowerPoint"
          UnRegisterOfficeAddin "Word"
       End Sub
    
       Public Sub RegisterOfficeAddin(sTargetApp As String)
          Dim sRegKey As String
          Dim nRet As Long, dwTmp As Long
          Dim hKey As Long
       
          sRegKey = "Software\Microsoft\Office\" & sTargetApp _
             & "\Addins\" & PROGID
       
          nRet = RegCreateKeyEx(HKEY_CURRENT_USER, sRegKey, 0, _
             vbNullString, 0, KEY_ALL_ACCESS, 0, hKey, dwTmp)
          
          If nRet = 0 Then
             If dwTmp = REG_CREATED_NEW_KEY Then
                Call RegSetValueEx(hKey, "FriendlyName", 0, _
                   REG_SZ, ByVal PROGID, Len(PROGID))
                Call RegSetValueEx(hKey, "Description", 0, _
                   REG_SZ, ByVal DESCRIPTION, Len(DESCRIPTION))
                Call RegSetValueEx(hKey, "LoadBehavior", 0, _
                   REG_DWORD, LOADBEHAVIOR, 4)
                Call RegSetValueEx(hKey, "CommandLineSafe", 0, _
                   REG_DWORD, SAFEFORCOMMANDLINE, 4)
             End If
             Call RegCloseKey(hKey)
          End If
       
       End Sub
    
       Public Sub UnRegisterOfficeAddin(sTargetApp As String)
          Dim sRegKey As String
          sRegKey = "Software\Microsoft\Office\" & sTargetApp _
             & "\Addins\" & PROGID
       
           Call RegDeleteKey(HKEY_CURRENT_USER, sRegKey)
       
       End Sub
  6. Dalla finestra controllo immediato (Visualizza | Finestra immediata), tipo RegisterAll, quindi premere INVIO. Questo verrÓ registrato il componente aggiuntivo con tutte le applicazioni di Office supportate (Access, Excel, FrontPage, Outlook, PowerPoint e Word).
  7. Aprire un'applicazione di Office elencate. Si noti la finestra di messaggio all'avvio e arresto del sistema e il pulsante personalizzato aggiunto alla barra degli strumenti standard.
  8. Quando si desidera annullare la registrazione del componente aggiuntivo, digitare UnregisterAll Nella finestra controllo immediato di Visual Basic e quindi premere INVIO.

Riferimenti

"Manuale del programmatore di Microsoft Office 2000 Visual Basic", capitolo 11. Componenti aggiuntivi, modelli, procedure guidate e librerie.

Per ulteriori informazioni sulla scrittura di componenti aggiuntivi COM, fare clic sui numeri per visualizzare gli articoli della Microsoft Knowledge Base:
230689 ESEMPIO: Comaddin.exe Office 2000 componente aggiuntivo COM scritto in Visual C++
190253 Finestre di progettazione di VB6 non funzionano in VB5
Per ulteriori informazioni sullo sviluppo di soluzioni basate su Web per Microsoft Internet Explorer, visitare il seguente sito Web Microsoft:
http://msdn.microsoft.com/ie/
Nota. Quando si aggiunge una voce di menu per Office Word da un componente aggiuntivo COM di Visual Basic utilizzando la procedura descritta in questo articolo oppure utilizzando un metodo simile, la voce di menu non funziona come previsto. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
313948 Word perde il riferimento alle voci di menu dell'oggetto COM (CommandBarControl)

ProprietÓ

Identificativo articolo: 238228 - Ultima modifica: giovedý 31 ottobre 2013 - Revisione: 7.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft FrontPage 2002 Standard Edition
  • Microsoft FrontPage 2000 Standard Edition
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000 Standard Edition
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Chiavi:á
kbautomation kbhowto kbmt KB238228 KbMtit
Traduzione automatica articoli
IMPORTANTE: il presente articolo Ŕ stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l?obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre Ŕ perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilitÓ per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualitÓ della traduzione.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 238228
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com