I looked why SteamWorks_GCRetrieveMessage does not work.
First, the number of arguments in the forward must be 4, instead of 5 (
https://github.com/KyleSanderson/Ste...chooks.cpp#L42).
Secondly, we should not call the original function if we did SH_CALL, because the message is removed from the queue and calling the original function again will return k_EGCResultNoMessage.