Possibly the GUID passed to the functions needs to be the same as in the GDF resource, but if that's the case, what's the point of having a GenerateGUID function in GameuxInstallHelper instead of an ExtractGUID function?
;--------------------------------
Function GE_AddGame
SetOutPath $PLUGINSDIR
File "GameuxInstallHelper.dll"
System::Call 'GameuxInstallHelper::AddToGameExplorerStrGUID(t "$INSTDIR\${GDF_BINARY}", t "$INSTDIR\", i 3, t "${GAME_GUID}")'
FunctionEnd
;--------------------------------
Function GE_AddTasks
SetShellVarContext all
System::Call 'GameuxInstallHelper::CreateTaskStrGUID(i 3, t "${GAME_GUID}", i 0, i 0, t "Play", t "$INSTDIR\${GAME_EXE}", t "")'
SetShellVarContext current
FunctionEnd
;--------------------------------
Function un.GE_RemoveGame
SetOutPath $PLUGINSDIR
File "GameuxInstallHelper.dll"
System::Call 'GameuxInstallHelper::RemoveFromGameExplorerStrGUID(t "${GAME_GUID}")'
System::Call 'GameuxInstallHelper::RemoveTasksStrGUID(t "${GAME_GUID}")'
FunctionEnd
I was able to add an entry to game explorer using the GUID extracted from the GDF resource beforehand, and code like the following: