Event-Driven COM

Generating a CTL Event for a COM Event

 

PxPlus can also process external events by generating a PxPlus CTL whenever an identified COM event occurs.

The following ON EVENT syntax places a CTL value into the input queue:

ON EVENT evtname$ FROM com_id PREINPUT ctl_id

Where:

evtname$

Event name, maximum 255 characters.

com_id

Numeric CTL value of a Windows COM object.

ctl_id

Numeric CTL signal to generate (preinput) when a given event occurs.

The PREINPUT format simplifies the event interface by eliminating the need to create an OOP object to manage events. This also works across WindX. The event process does not have access to any event parameters, as it will not be running in-line when the event occurs. If event parameters are required, see Linking to an OOP Object.

Example:

Automated Timer, COM Event

The following event-driven program sets an automated timer by generating a PxPlus CTL to process the associated COM event.

0010 def object Timer,"*system"
0020 on event "Timeout" from Timer preinput 500
0030 Timer'SetTimer(5)
0040 input a$,; if ctl=500 then print "Got a Timer Event"; goto *same
0050 Timer'SetTimer(0)
0060 drop object Timer