@Nitzer, lo más importante, fíjate lo que hago con lo que me llega en la
LINKAGE y lo vas a pillar enseguida.
Código COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. "MyWndProc".
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 OldWndProc IS EXTERNAL PIC S9(9) COMP-5.
01 MAIN-HWND IS EXTERNAL PIC S9(9) COMP-5.
01 WM-NCACTIVATE PIC S9(9) COMP-5 VALUE H"86".
01 P1 POINTER.
01 HWND REDEFINES P1 PIC S9(9) COMP-5.
01 P2 POINTER.
01 MSG REDEFINES P2 PIC 9(9) COMP-5.
01 P3 POINTER.
01 WPARAM REDEFINES P3 PIC S9(9) COMP-5.
01 P4 POINTER.
01 LPARAM REDEFINES P4 PIC S9(9) COMP-5.
LINKAGE SECTION.
77 PARM1 PIC S9(9) COMP-5.
77 PARM2 PIC 9(9) COMP-5.
77 PARM3 PIC S9(9) COMP-5.
77 PARM4 PIC S9(9) COMP-5.
PROCEDURE DIVISION WITH STDCALL USING PARM1 PARM2 PARM3 PARM4.
MOVE FUNCTION ADDR(PARM1) TO P1
MOVE FUNCTION ADDR(PARM2) TO P2
MOVE FUNCTION ADDR(PARM3) TO P3
MOVE FUNCTION ADDR(PARM4) TO P4
IF MSG = WM-NCACTIVATE
MOVE 1 TO WPARAM
END-IF
CALL "CallWindowProcA" WITH STDCALL USING BY VALUE OldWndProc
BY VALUE HWND
BY VALUE MSG
BY VALUE WPARAM
BY VALUE LPARAM
GOBACK