Here is the code from the Program Unit Package Body that was created from
the OLE Importer:
PROCEDURE /* ConnectionRequest */ EVENT2(interface OleObj, requestID IN OUT
NUMBER) IS
BEGIN
NULL;
END;
Here is the code from my on-dispatch-event for the OCX:
DECLARE
eventname VARCHAR2(32767) := :system.custom_item_event;
bytesTotal NUMBER;
data VARCHAR2(32767);
maxLen NUMBER;
requestID NUMBER;
BEGIN
IF eventname = 'EVENT0' THEN /*DataArrival*/
bytesTotal :=
MSWinsock_IMSWinsockControl.BytesReceived(:item('PB.ACTIVEX_WINSOCK').interf
ace);
MSWinsock_IMSWinsockControl.GetData(:item('PB.ACTIVEX_WINSOCK').interface,
TO_VARIANT(data), TO_VARIANT(VT_BSTR), TO_VARIANT(maxLen));
:PB.ASYNC_MSGS := :PB.ASYNC_MSGS||'data:'||data;
:PB.ASYNC_MSGS := data;
synchronize;
MSWinsock_IMSWinsockControl.ole_Close(:item('PB.ACTIVEX_WINSOCK').interface)
;
MSWinsock_IMSWinsockControl.Listen(:item('PB.ACTIVEX_WINSOCK').interface);
synchronize;
ELSIF eventname = 'EVENT1' THEN /*Connect*/
NULL;
ELSIF eventname = 'EVENT2' THEN /*ConnectionRequest*/
IF
MSWinsock_IMSWinsockControl.State(:item('PB.ACTIVEX_WINSOCK').interface) !=
MSWinsockLib_CONSTANTS.sckClosed THEN
MSWinsock_IMSWinsockControl.ole_Close(:item('PB.ACTIVEX_WINSOCK').interface)
;
END IF;
MSWinsock_IMSWinsockControl.ole_Accept(:item('PB.ACTIVEX_WINSOCK').interface
, requestID);
END IF;
END;