ActiveX nelle hosted application
federico.caselli non è online. Ultima attività: 27/06/2008 16.43.25federico.caselli
Inserito il: 21 luglio 2005 10.49
33 messaggi dal 10 mag 2005 Istalla Microsoft Silverlight!
Ciao,
ho provato in diversi modi a esporre un evento di una classe COM library scritta in vb.net ed intercettarlo da JScript in una hosted HTML application. La classe non ha interfaccia grafica ho semplicemente utilizzato aggiungi nuovo elemento da VS.NET --> Classe COM ed ho scritto il codice identico a qualsiasi altra classe .NET. L'errore all'interno della pagina è "Proprietà o metodo non supportati".

Mi puoi dare un suggerimento?

Grazie.
Re: ActiveX nelle hosted application
federico.caselli non è online. Ultima attività: 27/06/2008 16.43.25federico.caselli
Inserito il: 21 luglio 2005 10.50
33 messaggi dal 10 mag 2005 Istalla Microsoft Silverlight!
Dimenticavo, i metodi e le proprietà funzionano correttamente, il problema è solo sugli eventi.
Microsoft Most Valuable Professional
Re: ActiveX nelle hosted application
Ricciolo non è online. Ultima attività: 06/09/2008 14.06.16Ricciolo
Inserito il: 21 luglio 2005 14.18
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4559 messaggi dal 26 feb 2001 Istalla Microsoft Silverlight!
Mmm, come intercetti l'evento da js e come si chiama l'evento?

Ciao

Il mio blog
Homepage
Re: ActiveX nelle hosted application
federico.caselli non è online. Ultima attività: 27/06/2008 16.43.25federico.caselli
Inserito il: 21 luglio 2005 15.18
33 messaggi dal 10 mag 2005 Istalla Microsoft Silverlight!
da Jscript:

objDownload.DownloadComlete = onDownloadCompleted

function onDownloadCompleted(){
var MCE = window.external.MediaCenter();
var ret = MCE.Dialog("Download completed", "Download information", 1, 5, false)
}


nella classe vb:

Public Delegate Sub DownloadComleteEventHandler(ByVal Sender As Object, ByVal e As System.EventArgs)

Public Event DownloadComplete As DownloadComleteEventHandler
Microsoft Most Valuable Professional
Re: ActiveX nelle hosted application
Ricciolo non è online. Ultima attività: 06/09/2008 14.06.16Ricciolo
Inserito il: 21 luglio 2005 15.26
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4559 messaggi dal 26 feb 2001 Istalla Microsoft Silverlight!
mm, prova la forma

<SCRIPT FOR=idoggetto EVENT=DownloadComlete LANGUAGE="JScript">


A dir la verità l'evento non l'ho mai provato, devo provare stasera, comunque un evento è composto da due metodi Add_nomeevento Remove_nomeevento, quindi volendo puoi creare il metodo per concatenare il delegate, es

private downloadComplete as DownloadComleteEventHandler

Public sub AddDownloadComplete(handler as DownloadComleteEventHandler
downloadComplete = Delegate.Combine(downloadComplete, handler)
end sub

E' un trucchetto che dovrebbe andar bene

Ciao

Il mio blog
Homepage
Re: ActiveX nelle hosted application
federico.caselli non è online. Ultima attività: 27/06/2008 16.43.25federico.caselli
Inserito il: 21 luglio 2005 16.36
33 messaggi dal 10 mag 2005 Istalla Microsoft Silverlight!
Per poter usare SCRIPT FOR..., devo anche istanziare la classe ActiveX nella forma dichiarativa anziché

var objDownload = new ActiveXObject("MyDownload10.MyDownload10X")

come è adesso?

per quanto riguarda il codice vb che mi hai suggerito, non ho capito come si integra con quello che ho scritto.
Devo eliminare la dichiarazione pubblica dell'evento, sostituendola con

private downloadComplete as DownloadComleteEventHandler

?

il codice

Public sub AddDownloadComplete(handler as DownloadComleteEventHandler
downloadComplete = Delegate.Combine(downloadComplete, handler)
end sub

va aggiunto all'interno della classe?
Microsoft Most Valuable Professional
Re: ActiveX nelle hosted application
Ricciolo non è online. Ultima attività: 06/09/2008 14.06.16Ricciolo
Inserito il: 21 luglio 2005 16.49
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4559 messaggi dal 26 feb 2001 Istalla Microsoft Silverlight!
Ah no, non avevo pensato che lo istanziavi da codice. Sì devi togliere l'evento e mettere quel metodo con quel delegate.
In pratica facciamo noi a mano quello che fa il compilatore ma che maschera

Ciao

Il mio blog
Homepage
Re: ActiveX nelle hosted application
federico.caselli non è online. Ultima attività: 27/06/2008 16.43.25federico.caselli
Inserito il: 22 luglio 2005 11.19
33 messaggi dal 10 mag 2005 Istalla Microsoft Silverlight!
Come si genera l'evento nella funzione Download() all'interno della classe?

Ho provato con

downloadComplete.Invoke(Me, New System.EventArgs())

ma ottengo l'eccezione
"Riferimento a un oggetto non impostato su un'istanza di un oggetto"

(l'ho sparata grossa?)

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


maltra - 811 pt
vladimiro - 562 pt
fabrica - 180 pt

Ultimi vincitori: fabrica, vladimiro, PeppeDotNet

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008 + Windows Server 2008, ReShaper e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums