| Angelo Aldrovandi |
Mappare eventi di un COM late-bound?
Ciao a tutti,
sto costruendo una Windows Forms application .Net che visualizza dei documenti Office in un riquadro. Non esistendo piu' l'oggetto OLEContainer di VB6 ho usato il WebBrowser come suggerito anche da Microsoft. All'evento NavigateComplete2 del mio oggetto browser lo interrogo su qual e' l'oggetto Application che sta ospitando. So di aspettarmi un oggetto PowerPoint.Application e voglio mappare l'evento SlideShowNextSlide a una procedura del mio codice. PowerPoint.Application app; app = (PowerPoint.Application) o.GetType().InvokeMember( "Application", BindingFlags.GetProperty, null, oSlides, null); Mancherebbe solo di ridefinire l'handler per l'evento SlideShowNextSlide dell'oggetto app con la mia funzione OnNextSlide: app.SlideShowNextSlide += new PowerPoint.EApplication_SlideShowNextSlideEventHandler( OnNextSlide ); ma anche se questo non genera errori (ne' buildtime ne' runtime), l'evento non viene accalappiato dalla OnNextSlide... :(( Questo, credo, perche' l'oggetto "app", anche se dichiarato e castato "PowerPoint.Application", risulta essere late-bound e in fase runtime e' di tipo "__ComObject" e quindi non dispone degli eventi che voglio rimappare. Non riesco a definirlo in early-binding, nonostante abbia aggiunto una reference in VS.NET alla type-library COM "PowerPoint" (Interop.PowerPoint). Qualcuno avrebbe un'idea di come si puo' risolvere la situazione? Grazie mille !! * Eingel |