¿Y cuál es la pregunta?
Cuando el código compilado en Delphi, llama una función o procedimiento, en ese instante se va agregando a la pila de ese hilo de ejecución: El puntero de la siguiente instrucción después de la llamada a la función y el puntero a cada uno de los parámetros de izquierda a derecha exceptuando los tres primeros parámetros, que por optimización se guardan en registros, y la función es la encargada de quitarlos de la pila al retornar. Pero si necesitamos llamar a una función que no respete esquema, tenemos cinco convenios estándares de llamadas:
register Convención por defecto de Delphi descrita anteriormente.
pascal Original de los primeros compiladores, utiliza parámetros de izquierda a derecha y la rutina es la encargada de quitarlos.
cdecl Parámetros de derecha a izquierda y es quien llama que tiene que quitar los parámetros de la pila. (Tipo ANSI C)
stdcall Es el standard de windows, los parámetros se agregan de Izquierda a Derecha y la rutina los quita.
safecall Los parámetros se agregan de Izquierda a Derecha y la rutina los quita.
Saludos!