Für die diversen Parameter gibt es auch entsprechungen.
Wichtig ist beim Prototyp folgendes:
Parameter ohne "*" bzw. "&" werden als "Value" übergeben, Strings können als "CONST OPIONS(*STRING)" definiert werden.

Der Prototyp sieht dann ganz einfach sos aus:
DItCreate PR * EXTPROC('ItCreate')
D PARM1 256 value options(*string)
D PARM2 10U value
D PARM3 10U value
d PARM4 10U value

Da die Funktion mit "*" wohl einen Pointer zurückgibt, muss auch das Ziel als Pointer angegeben werden:

D Handle *

der Aufruf dann einfach:
Handle = ItCreate('TAB1': 20: 2: 0);

Wichtig ist ggf. noch, ob es bei anderen Funktionen zur Verwendung des Handles kommt. In diesem Fall ist der Pointer auch als "value" zu übergeben, sonst wird die Adresse des Pointers verwendet:

DFunction PR * EXTPROC('Function')
D PARM1 * value

PS:
Parameter als Value bzw. Const können beim Aufruf direkt angegeben werden und bedürfen keiner Hilfsvariablen. Das macht die Sache dann leichter lesbar.