А леший его знает чем они отличаются

Может раньше и отличались, но сейчас это одно и тоже. Я прошёлся по всем хедерам студии - везде
APIENTRY лишь синоним
WINAPI.
Для чего нужен
WINAPI? Это вего лишь define, который включает в себе все спецификации (calling convention, far/near keyword), которые присущи для API функций данной версии Windows. Не стоит, думаю, говорить о том, что для разных версий Windows эти параметры могут отличаться, потому для увеличения переносимости кода следует писать именно
WINAPI, а не
far pascal, который подразумевается под этим define'ом, если у тебя Windows старше 95.