Aximp.exe (utilità di importazione di controlli ActiveX di Windows Form)
L'utilità di importazione di controlli ActiveX converte in un controllo Windows Form le definizioni dei tipi in una libreria di tipi COM per un controllo ActiveX.
In Windows Form possono essere contenuti solo controlli Windows Form, ovvero classi derivate da Control. Aximp.exe genera una classe wrapper per un controllo ActiveX che può essere ospitato in Windows Form. Questo consente di utilizzare lo stesso supporto per la fase di progettazione e la stessa metodologia di programmazione applicabili ad altri controlli Windows Form.
Per ospitare il controllo ActiveX, è necessario generare un controllo wrapper che derivi da AxHost. Tale controllo contiene un'istanza del controllo ActiveX sottostante ed è in grado di comunicare con il controllo ActiveX pur avendo l'aspetto di un controllo Windows Form. Il controllo così generato ospita il controllo ActiveX e ne espone proprietà, metodi ed eventi come se fossero del controllo generato.
Viene installato automaticamente con Visual Studio. Per eseguire lo strumento, usare il prompt dei comandi per gli sviluppatori di Visual Studio o Visual Studio Developer PowerShell.
Al prompt dei comandi digitare quanto segue:
Sintassi
aximp [options]{file.dll | file.ocx}
Osservazioni:
Argomento | Descrizione |
---|---|
file | Nome del file di origine contenente il controllo ActiveX da convertire. L'argomento del file deve avere l'estensione .dll oppure .ocx. |
Opzione | Descrizione |
---|---|
/delaysign |
Specifica ad Aximp.exe di firmare il controllo risultante utilizzando la firma ritardata. È necessario specificare questa opzione con l'opzione /keycontainer: , /keyfile: o /publickey: . Per altre informazioni sulla firma ritardata, vedere Ritardo della firma di un assembly. |
/help |
Visualizza la sintassi e le opzioni di comando dello strumento. |
/keycontainer: containerName |
Firma il controllo risultante con un nome sicuro usando la coppia di chiavi pubblica/privata presente nel contenitore di chiavi specificato da containerName. |
/keyfile: Filename |
Firma il controllo risultante con un nome sicuro usando la coppia di chiavi pubblica/privata ufficiale del server di pubblicazione trovata in filename. |
/nologo |
Evita la visualizzazione del messaggio di avvio Microsoft. |
/out: Filename |
Specifica il nome dell'assembly da creare. |
/publickey: Filename |
Firma il controllo risultante con un nome sicuro usando la chiave pubblica presente nel file specificato da filename. |
/rcw: Filename |
Utilizza il Runtime Callable Wrapper specificato invece di generarne uno nuovo. È possibile specificare più istanze. La directory corrente viene usata per i percorsi relativi. Per altre informazioni, vedere la sezione Runtime Callable Wrapper . |
/silent |
Evita la visualizzazione dei messaggi di operazione riuscita. |
/source |
Genera codice sorgente C# per il wrapper di Windows Form. |
/verbose |
Specifica la modalità dettagliata. Visualizza ulteriori informazioni sullo stato. |
/? |
Visualizza la sintassi e le opzioni di comando dello strumento. |
Aximp.exe converte un'intera libreria dei tipi di controlli ActiveX alla volta e produce un set di assembly contenenti i metadati di Common Language Runtime e l'implementazione dei controlli per i tipi definiti nella libreria dei tipi originale. I file generati vengono denominati in base ai criteri seguenti:
Proxy Common Language Runtime per i tipi COM: progid.dll
Proxy di Windows Forms per i controlli ActiveX (dove Ax significa ActiveX): Axprogid.dll
Nota
Se il nome di un membro del controllo ActiveX corrisponde a un nome definito in .NET Framework, il nome del membro verrà fatto precedere dal prefisso "Ctl" durante la creazione della classe derivata da AxHost. Se, ad esempio, il controllo ActiveX contiene un membro denominato "Layout", questo verrà rinominato "CtlLayout" nella classe derivata da AxHost in quanto l'evento Layout è definito all'interno di .NET Framework.
È possibile esaminare i file generati con strumenti quali Ildasm.exe (Disassembler IL).
L'utilizzo di Aximp.exe per generare un assembly .NET per il controllo ActiveX WebBrowser (shdocvw.dll) non è supportato.
L'esecuzione di Aximp.exe sul file shdocvw.dll comporterà sempre la creazione di un altro file denominato shdocvw.dll nella directory da cui viene eseguito lo strumento. Se si inserisce questo file generato nella directory Documenti, può causare problemi per Esplora risorse. Quando il computer viene riavviato, Windows cerca nella directory Documents prima della directory system32 per trovare una copia di shdocvw.dll. Userà la copia trovata in Documenti e tenterà di caricare i wrapper gestiti. Esplora risorse non funzionerà correttamente perché si basa sul motore di rendering nella versione di shdocvw.dll che si trova nella directory system32. Se si verifica questo problema, eliminare la copia di shdocvw.dll nella directory Documenti e riavviare il computer.
Esempio
Il comando che segue genera MediaPlayer.dll e AxMediaPlayer.dll per il controllo msdxm.ocx
di Media Player.
aximp c:\systemroot\system32\msdxm.ocx