This may be something very obvious I overlooked, but any idea why the behavior when I call the LimeLM APIs from my console installation app behaves differently than when called from my Windows service?
I am using the exact same code. My console app properly detects that my product key has been revoked. My service does not.
Right off the bat, from your description of CheckAndSavePKey(), (I call it just for fun) returns TA_OK from my console app while the service it fails.
Also, from my service, IsActivated() incorrectly returns TA_OK.