Toon posts:

ActiveX event argumenten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer gebruik te maken van een ActiveX object in een DLL vanuit mijn CBuilder 5 applicatie. Hiervoor heb ik via Import Type Library een wrapper component gegenereerd.

Dit component kan ik zonder problemen alloceren, properties instellen, methods invoken. zo heb ik ook een event propery gezet en deze wordt ook netjes getriggered op het verwachte moment.

Volgens de documentatie van het ActiveX object geeft hij aan het event twee argumenten mee, een naam (String) en een waarde (Variant).

Nu is het probleem dat het gegenereerde wrapper component de volgende argumenten heeft:
TObject* Sender (het is een event),
een type die gedeclareerd is als dispinterface van het ActiveX object genaamd Source/*[in]*/,
LPDISPATCH NameEvent/*[in]*/

Hoe krijg ik nu via argument NameEvent de twee argumenten die hij normaal hoort te krijgen boven water? Van alles geprobeerd maar het dispatch object heeft niet zo gek veel members waar ik iets mee kan. Via google heb ik geen oplossing weten te vinden en ik heb het ook vanuit Delphi proberen te doen maar die genereerd dezelfde event handler....

Heeft iemand hier ervaring mee?

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

VARIANT is meestal een type dat dus alles kan zijn...

de LP prefix duidt meestal op een pointer/referentie.

in C++ denk ik dat dit type zou neerkomen op een void*

ASSUME makes an ASS out of U and ME


Verwijderd

Topicstarter
het probleem is juist dat het type geen variant is maar een LPDISPATCH, inderdaad een pointer naar een IDispatch interface. Maar hoe krijg ik hier de waardes uit?

[ Voor 23% gewijzigd door Verwijderd op 09-09-2005 19:17 ]


Verwijderd

Topicstarter
Eindelijk werkt het en je zat inderdaad in de buurt met die Variant.

Iemand van het NLDelphi forum heeft me de tip gegeven om het Dispatch object te assignen aan een Variant en dan gewoon Variant.naam te proberen. En dit werkt!