¿Qué hace una declaración de "CALLBACK" en C?

Estaba mirando algún código de la SDL library y encontré una función declarada así:

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

Ahora, soy un codificador de Delphi. No hablo C muy bien, señor. Pero recuerdo suficiente sintaxis de mis cursos universitarios para leerlo así:

l nombre de @Function es WndProc. La lista de argumentos se explica por sí misma. El tipo de retorno de la función es LRESULT. Pero, ¿qué demonios está haciendo ese "CALLBACK" allí? En Delphi, cualquier función puede usarse como devolución de llamada; solo necesita pasar el tipo correcto de puntero de función. ¿Hay alguna razón particular por la cual C no funciona de esa manera? ¿O significa algo diferente?

Respuestas a la pregunta(4)

Su respuesta a la pregunta