Vale, ya he probado el código Kuk. Pero no consigo que funcione el copy.
Código COBOL:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-HWND-P PIC S9(9) COMP-5.
01 WS-HWND-C PIC S9(9) COMP-5.
01 WS-TEXTO PIC X(50).
01 WM_CUT PIC S9(9) COMP-5 VALUE 768.
01 WM_COPY PIC S9(9) COMP-5 VALUE 769.
01 WM_PASTE PIC S9(9) COMP-5 VALUE 770.
PROCEDURE DIVISION.
CALL SETFOCUS OF EDIT1. <* Este es el control con el texto que quiero copiar
CALL "GetActiveWindow" WITH STDCALL.
MOVE PROGRAM-STATUS TO WS-HWND-P.
CALL "GetDlgItem" WITH STDCALL USING BY VALUE WS-HWND-P BY VALUE 1.
MOVE PROGRAM-STATUS TO WS-HWND-C.
CALL "GetDlgItemTextA" WITH STDCALL USING BY VALUE WS-HWND-P BY VALUE 1 BY REFERENCE WS-TEXTO BY VALUE 50.
CALL DISPLAYMESSAGE OF SHEET1 USING WS-TEXTO. <* Muestra el texto del control
CALL "SendMessageA" WITH STDCALL USING BY VALUE WS-HWND-C BY VALUE WM_COPY BY VALUE 0 BY VALUE 0.
Abro el bloc de notas y, cuando intento pegar el contenido del portapapeles, este aparece como vacío.