But wait, I thought that if I specified "false" as the 3rd parameter to IsGenuine (Note that this is the C# version), then it would check the server at the specified intervals, even if the activation was originally made offline. Or maybe that's not right...
Could you explain the last two parameters of the function in more detail to me? The documentation is not as clear as I think it could be:
<param name="skipOffline">If the user activated using offline activation (ActivateRequestToFile(), ActivateFromFile() ), then with this option IsGenuineEx() will still try to validate with the LimeLM servers, however instead of returning <see cref="IsGenuineResult.InternetError"/> (when within the grace period) or <see cref="IsGenuineResult.NotGenuine"/> (when past the grace period) it will instead only return <see cref="IsGenuineResult.Genuine"/> (if IsActivated()). If the user activated using online activation then this option is ignored.</param>
<param name="offlineShowInetErr">If the user activated using offline activation, and you're using this option in tandem with skipOffline, then IsGenuineEx() will return <see cref="IsGenuineResult.InternetError"/> on internet failure instead of <see cref="IsGenuineResult.Genuine"/>. If the user activated using online activation then this flag is ignored.</param>
Reading the documentation literally, then here are the possible states (I just realized that this is not the same as my understanding as described above):
1. skipOffline = false, offlineShowInetErr = false/true: In this case, any offline activations are not checked with the server, ever.
2. skipOffline = true, offlineShowInetErr = false: In this case, any offline activations ARE checked with the server, but returns "IsGenuineResult.Genuine" if there is an internet error. If it continues to not connect to the internet after the grace period, then it will attempt to connect each and every time the program is opened until it connects successfully (but always returns "IsGenuineResult.InternetError"). It could still return "IsGenuineResult.NotGenuine" because of a successfully connecting to the server, and discovering the license has been revoked or deleted.
3. skipOffline = true, offlineShowInetErr = true: In this case, any offline activations ARE checked with the server, and returns "IsGenuineResult.InternetError" if there is an internet error. Never will return "IsGenuineResult.NotGenuine" because of going over the grace period and still not being able to connect to the internet. If it continues to not connect to the internet after the grace period, then it will attempt to connect each and every time the program is opened until it connects successfully (but always returns "IsGenuineResult.InternetError"). Could return "IsGenuineResult.NotGenuine" because of a successfully connecting to the server, and discovering the license has been revoked or deleted.
Is my interpretations about the method correct?