ActiveX - como enlazar un puntero con un ocx en una funcion?

 
Vista:

como enlazar un puntero con un ocx en una funcion?

Publicado por KubacK (1 intervención) el 11/12/2002 19:43:29
Como puedo manipular un control ActiveX del cual ya existe una instancia abierta, desde una funcion exportada en un MFC DLL pasandole una referencia .
La definicion de la función a exportar es como sigue:

void Mi_Funcion(IDispatch **ParamIn)
{
}
Si el control ActiveX es MiOCX y el wrapper creado para el mismo por el MFCWizzard es CMiOCX como logro manipular las propiedades y métodos del mismo bajo la forma: ParamIn.Propiedad1 y asi scesivamente.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro Andrade

como enlazar un puntero con un ocx en una funcion?

Publicado por Alejandro Andrade (213 intervenciones) el 24/03/2023 21:42:23
Para manipular un control ActiveX desde una función exportada en un MFC DLL, puedes seguir los siguientes pasos:

1. Asegúrate de haber importado la biblioteca de tipos del control ActiveX en el proyecto del DLL MFC. Esto se puede hacer mediante el menú "Proyecto" -> "Agregar referencia de biblioteca de tipos". Selecciona el archivo DLL o OCX del control ActiveX y sigue los pasos del asistente.

2. En la función exportada, crea un objeto del tipo CMiOCX y asigna el valor del parámetro ParamIn a través de la función AttachDispatch. De esta manera, el objeto CMiOCX estará conectado con la instancia del control ActiveX que se está pasando como parámetro.

El código para hacer esto podría ser similar a lo siguiente:

1
2
3
4
5
6
7
8
9
10
void Mi_Funcion(IDispatch **ParamIn)
{
  CMiOCX miControl;
  miControl.AttachDispatch(*ParamIn);
 
  // Ahora se puede manipular el control ActiveX utilizando las funciones y propiedades de la clase CMiOCX
  miControl.SetPropiedad1(valor);
  miControl.Metodo1();
  // ...
}

Es importante que la clase CMiOCX haya sido generada correctamente por el MFCWizzard y que tenga todas las funciones y propiedades necesarias para manipular el control ActiveX.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar