diff --git a/Contrib/System/System.html b/Contrib/System/System.html index 65831728..1238a51d 100644 --- a/Contrib/System/System.html +++ b/Contrib/System/System.html @@ -371,7 +371,7 @@ StrCmp $R0 "callback1" 0 +2 DetailPrint "UseCallback passed ($0, $1) to the callback" -

After you've processed the callback call, you should use Call, passing it the value returned by Get - the callback. This tells System to return from the callback. If you've specified a source for the return "parameter" when the callback was created, you should fill that source with the appropriate return value. Callbacks are not automatically freed, don't forget to free it after you've finished using it.

+

After you've processed the callback call, you should use Call, passing it the value returned by Get - the callback. This tells System to return from the callback. Destination of the return "parameter" must be cleared prior to calling a function, to avoid false detection of a callback call. If you've specified a source for the return "parameter" when the callback was created, you should fill that source with the appropriate return value. Callbacks are not automatically freed, don't forget to free it after you've finished using it.

SetPluginUnload alwaysoff
 System::Get "(i .r0, i .r1) isR0"
@@ -381,6 +381,7 @@ loop:
 	StrCmp $R0 "callback1" 0 done
 	DetailPrint "UseCallback passed ($0, $1) to the callback"
 	Push 1 # return value of the callback
+	StrCpy $R0 "" # clear $R0 in case there are no more callback calls
 	System::Call $0 # tell system to return from the callback
 	Goto loop
 done: