It is necessary to call first "COBW3_INIT" to set the ISAPI Subroutine environment and to acquire Web parameters. When terminating ISAPI Subroutine processing (at the end of the procedure), be sure to call "COBW3_FREE" to release resources allocated by ISAPI Subroutines.
Call other subroutines using the CALL statement as needed.
When calling other subroutines in a program different from the program that called "COBW3_INIT", pass the interface area (COBW3) defined by the program that called "COBW3_INIT" to other programs that need to make ISAPI Subroutine calls and call other subroutines using the same area.
Example
When "COBW3_INIT" is called by the parent program and "COBW3_FREE" is called by the child program B.
Parent program:
IDENTIFICATION DIVISION. PROGRAM-ID. "HttpExtensionProc". DATA DIVISION. WORKING-STORAGE SECTION. COPY COBW3. LINKAGE SECTION. COPY ISAPICTX. PROCEDURE DIVISION WITH STDCALL LINKAGE USING ISAPI-CTX-CNT. MOVE LOW-VALUE TO COBW3. MOVE FUNCTION ADDR(ISAPI-CTX-CNT) TO COBW3-CONTEXT. CALL "COBW3_INIT" USING COBW3. : CALL "B" USING COBW3. * MOVE 1 TO PROGRAM-STATUS. EXIT PROGRAM.
Child program:
IDENTIFICATION DIVISION. PROGRAM-ID. B. DATA DIVISION. LINKAGE SECTION. COPY COBW3. PROCEDURE DIVISION USING COBW3. : CALL "COBW3_FREE" USING COBW3. EXIT PROGRAM.