Newsgroup: it.comp.lang.visual-basic
Titolo: Domande su controllo ActiveX (lungo)

Ciao a tutti,
avrei bisogno di qualche chiarimento riguardo l'utilizzo di controlli
ActiveX....
Allora, ho progettato un controllo in VB6, l'ho salvato con la classica
estensione ActiveX e adesso lo vorrei includere in una pagina HTML. Ho visto
il codice Html che Vb inserisce nella pagina di prova che viene usata per
testare il controllo quando viene scelto il comanto Avvia (F5), ma con mia
grande sorpresa ho notato che viene incluso solo un riferimento al registro
(CLSID ecc, ecc.) e nessun link al file vero e proprio. A questo punto mi
chiedo come sia possibile che il controllo possa funzionare su una macchina
che non ha fisicamente il file OCX...
anzi, mi viene proprio il dubbio che una cosa del genere si possa fare!
Spero di essere stato il più chiaro possibile e ringrazio anticipatamente
chi mi risponderà, magari via email.
--
Marco Anelli
ane...@libero.it
N.B. Rimuovi NOSPAM per rispondere

Ciao Marco
la risposta sarà lunga almeno quanto la domanda, la cosa funziona così :
tu crei un ocx, una volta che l'hai creato con il pacchetto per le
installazioni generi un "Installazione per internet", in pratica il
risultato sarà un file html con dentro un riferimento oltre che alla classe
id dell'ocx anche al file cab attraverso il CodeBase che conterà il tutto.
Quest'ultimo contiene l'indirizzo della locazione su internet da dove
scaricare il tuo controllo che ovviamente il client non avra', c'è anche un
riferimento alla versione, quindi quando ti colleghi ie verifica se nel suo
registro trova il riferimento a quell'ocx e se lo trova controlla la
versione, altrimenti passa alla fase succ. che è la visualizzazione, qualora
abbia un'interfaccia.
Se non c'è il riferimento allora procede al download del file cab ( o + file
cab ) per  intero che mette in temp\ e poi installa il tutto ( cosa che ti
porterà non pochi problemi ), tieni conto che se sulla macchina non ci sono
i runtime di vb ie cerchera di andarli a prendere dal sito di mamma
Microsoft ... insomma un bell'inpiccio.
Purtroppo è solo la punta dell'iceberg, le fasi per l'installazione di un
client sono molto critiche, almeno per mia esperienza, spero di essere stato
chiaro.
Saluti
  Andrea

Scusa se ne approfitto per un piccolo quesito inerente agli ActiveX:
Ho realizzato un documento ActiveX e poi usato il package per internet
(lasciando nel CAB solo i file non altrimenti scaricabili da Microsoft).
Quando io chiamo la pagina creata dal wizard (che contiene il link al *.vbd)
va tutto ok (per forza il controllo io ce l'ho!); quando invece la stessa
cosa la fa un mio amico (che non ha il controllo ma ha vb6 installato, per
cui ha le DLL runtime etc.) , mi dice che non succede niente.
Ha provato anche nelle impostazioni di Internet Explorer a dire che i
componenti activex senza firma digitale devono essere scaricati, ma non
succede nulla: come mai secondo te?
Grazie
Silvio

Guarda il vbd, per quello che ho potuto vedere un agglomerato di ocx che tu
non vedi ma che mamma Microsoft assembla nel tuo documento, comunque ,
purtroppo capire che cosa non va' nella fase di installazione è cosa ardua,
un riferimento puoi averlo da un file che viene creato in "temporary
internet files" in cui viene riportato il log del processo di installazione,
ed eventuali problemi che sono avvenuti nel download o in qualche altra
fase.
Una cosa che mi viene in mente dè che il tuo amico potrebbe avere delle dll
di una versione inferiore alla tua, il pacchetto di installazione crea un
file inf in cui mette tutti i riferimenti alle librerie che hai utilizzato,
confrontale con quelle che ha il tuo amico e vedrai che salta fuori
qualcosa.
Saluti
  Andrea
ps : il file di load lo riconosci perchè nel nome trovi
"dkhfhdsjhfksahfsjfhksjahCode-Error" ... o qualcosa di simile.