Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. COM
  4. How do I fire events in a windowless ActiveX control?

How do I fire events in a windowless ActiveX control?

Scheduled Pinned Locked Moved COM
questioncsharpc++visual-studio
2 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    prcarp
    wrote on last edited by
    #1

    I built a control using the MFC ActiveX control wizard in VC6 and I am able to add methods, properties, and events just fine. When the control is created, I start a new thread (CWinThread-based) in the constructor. The control is not visible during runtime; rather this worker thread runs in the background (reading the serial port and doing parsing operations) and sends back information to the host application via events. The way I did this was to make the thread class a friend of the control class so that the thread class could directly call the FireEvent___ functions. Is this the right way to do this? I've Googled this and also searched cp here but came up short on specific examples. I ask this because when I test the control on VB6, sometimes the entire VB IDE shuts down (crash). When I test the control on VB.NET 2005, the event callback functions can't access any of the form controls (because the event function is called under the context of the control's worker thread). In LabView, the events fire back but all the arguments are zero; not the values that were passed to the FireEvent___ function (they are all signed long). Thanks in advance!

    L 1 Reply Last reply
    0
    • P prcarp

      I built a control using the MFC ActiveX control wizard in VC6 and I am able to add methods, properties, and events just fine. When the control is created, I start a new thread (CWinThread-based) in the constructor. The control is not visible during runtime; rather this worker thread runs in the background (reading the serial port and doing parsing operations) and sends back information to the host application via events. The way I did this was to make the thread class a friend of the control class so that the thread class could directly call the FireEvent___ functions. Is this the right way to do this? I've Googled this and also searched cp here but came up short on specific examples. I ask this because when I test the control on VB6, sometimes the entire VB IDE shuts down (crash). When I test the control on VB.NET 2005, the event callback functions can't access any of the form controls (because the event function is called under the context of the control's worker thread). In LabView, the events fire back but all the arguments are zero; not the values that were passed to the FireEvent___ function (they are all signed long). Thanks in advance!

      L Offline
      L Offline
      Lim Bio Liong
      wrote on last edited by
      #2

      Hello prcarp, >> The way I did this was to make the thread class a friend of the control class so that the thread class could directly call the FireEvent___ functions. Is this the right way to do this? This is not good enough. You basically need to marshal the event sinks of your control's client to the thread managed by your CWinThread-based class. I have written a sample applcation that demonstrates this. Please email me : bio_lim_2004@yahoo.com and I'll send you the sample codes. Best Regards, Bio.

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups