Du musst das API schon mit ALLEN REQUIRED! Parametern aufrufen und kannst nicht einfach irgendwo was weglassen!

Das war/ist meine Prozedur, die bereits seit ein paar Jahrhunderten problemlos läuft:
1. Parameter und Referenz-Datenstrukturen:
Code:
     D DspWdwTxt       PR                  ExtPgm('QUILNGTX')
     D  ParmText                  65535    const options(*VarSize)
     D  ParmLenText                  10I 0 const
     D  ParmMsgId                     7A   const
     D  ParmQualMsgFile...
     D                               20A   const
     D  ParmError1                         likeDS(DS_Error1)

      * Error Datenstruktur
     D DS_Error1       DS                  Qualified
     D   ByteProv                    10I 0 inz(%Size(DS_Error1))
     D   ByteAvail                   10I 0 inz(*Zeros)
     D   MsgId                        7    inz(*Blanks)
     D   Reserved                     1    inz(x'00')
     D   ExceptData                 256    inz(*Blanks)
2. Aufruf aus RPG
Code:
     H DEBUG
      *-----------------------------------------------------------------*
     D/COPY QPROLESRC,DSPWDWTXT
     D BspText         S          65535    varying
      *-----------------------------------------------------------------*
      /Free
        BspText = 'Dies soll nur ein kurzer Text sein, um das +
                   API QUILNGTX auszuprobieren! +
                   Das UIM API QUILNGTX (Display Long Text) stellt eine +
                   einfache Möglichkeit dar, einen beliebigen Text +
                   in einem Fenster anzuzeigen. +
                   Das Erstellen einer Display-File +
                   ist dazu nicht erforderlich.';

         DspWdwTxt(BspText: %Len(BspText): *Blanks: *Blanks: DS_Error1);

        *InLR = *On;

      /End-Free
3. Wrapper Procedure:
3.1. Prototyp
Code:
   D DspWDW          PR                  ExtProc('DSPWDW')
     D  ParmText                  65535    const varying
3.2. Wrapper Prozedur
Code:
     H DEBUG NoMain
      *-----------------------------------------------------------------*
     D/COPY QPROLESRC,DSPWDWTXT
     *------------------------------------------------------------------*
     P DspWDW          B                   Export

     D DspWdW          PI
     D  ParmText                  65535    const varying

      /Free
       DspWdWTxt(ParmText: %Len(ParmText): *Blanks: *Blanks: DS_Error1);
       Return;
      /End-Free
3.3. Aufruf Wrapper Prozedur
Code:
    H DEBUG
      *------------------------------------------------------------------*
     D/COPY QPROLESRC,DSPWDWTXT

     D  BspText        S         65535    const varying
     *-------------------------------------------------------------------*
      /Free
        BspText = 'Dies soll nur ein kurzer Text sein, um das +
                   API QUILNGTX auszuprobieren!';

        DspWDW(BspText);

        DspWDW('Der Text kann auch direkt übergeben werden.');

        *INLR = *ON;
      /End-Free
Birgitta