ActiveX ctrl de eventos y manejo de parametros

ActiveX ctrl de eventos y manejo de parametros

Postby Biel EA6DD » Wed Nov 05, 2008 12:13 pm

Tengo un ActiveX, del cual controlo sus eventos. Uno de dichos eventos, pasa tres parametros.
El primero es un numero, y los dos siguientes son un objeto (OLE).

Como puedo manejar dichos objetos, al revisar el array de parametros, me devuelve un numerico, puedo intuir que sea una dirección de memoria.

De la doc. del activeX

HRESULT OnEnroll(
[in] LONG 1Mask,
[in] IDispatch* pTemplate,
[in] IDispatch* pStatus
);

Mask [in] Variable of type long that contains the index value
Template [in] A DPFPTemplate object
pStatus [in] A DPFPEventHandlerStatus object

Actualmente me devuelve lo siguiente
aParams[1]-->2
aParams[2]-->53158252 //Esto debiera ser Objeto Template??
aParams[3]-->18948684 //Esto debiera ser Objeto Status
Last edited by Biel EA6DD on Wed Nov 05, 2008 2:49 pm, edited 1 time in total.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby Antonio Linares » Wed Nov 05, 2008 1:38 pm

Biel,

>
aParams[2]-->53158252 //Esto debiera ser Objeto Template??
aParams[3]-->18948684 //Esto debiera ser Objeto Status
>

Si, posiblemente. Para poder usarlos, haz esto:
Code: Select all  Expand view
   local o := CreateObject( "Shell.Explorer" )
   local hOldObj := o:hObj
   local uRet

   o:hObj = aParams[2]
   // a partir de aqui, lo puedes usar como un objeto OleAuto
   ...
   o:hObj = hOldObj
   o = nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Biel EA6DD » Wed Nov 05, 2008 4:35 pm

Gracias Antonio,
supongo que con lo que me indicas debe de funcionar.
El objeto parece que queda bien definido, el problema que tengo ahora, es particular de este objeto OleAuto, y es que puedo acceder a los datas, pero no me reconoce ningun metodo.
En VB, lo he probado y si funciona ok, tanto metodos como datas. Alguna idea de lo que le pueda pasar.
Alguna manera para ver los metodos disponibles de un control OleAuto?

Error description: Error DPFPShrX.DPFPTemplate/3 DISP_E_MEMBERNOTFOUND: DESERIALIZE
Args:

Stack Calls
===========
Called from: source\rtl\win32ole.prg => TOLEAUTO:DESERIALIZE(0)


PD Este comportamiento es independiente al hecho de cambiar hObj, si no lo cambio, tampoco me funciona.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby jcaro » Wed Nov 05, 2008 5:39 pm

Hola Biel:

Te envie a tu privado, algo que te va a servir !!

Saludos,

Juan
Juan
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
jcaro
 
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm

Postby Biel EA6DD » Wed Nov 05, 2008 8:47 pm

Gracias Juan,
lo que realmente me interesaria es poder comprobar las existencias de los metdos desde dentro de Harbour.

Los nombres de los metodos, los tengo en la documetación y ademas tambien los he comprobado con Oleview, el caso es que desde Harbour me retorna error, y por ejemplo desde VB funciona correctamente. Es un comportamiento algo estraño, hasta la fecha, siempre me habia funcionado sin problema la mayoria de controles Ole.

Si alguien puede darme una pista, sera bienvenida.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 40 guests