Thanks again for the answers.
I've got offline activation working fine on the macOS side, but on Windows, the TA_ActivateFromFile()
function will not return anything but TA_FAIL
(1). I am NOT using static libraries for TurboActivate on macOS or on Windows, so the DLL I am build is loading into the host app because I have verified other functions are fine.
Here is the code I have to support both macOS and Windows for activating from the file. Note that the data coming in from the host app is of type string, and I have no control over that data type, so I have to do some type conversion on the string that represents the file path:
HRESULT hr;
string fileLoc(argv[0].data.string);
#if _WIN32
CA2W fileLoc_W(file.c_str());
wstring fileLocation = fileLoc_W;
hr = TA_ActivateFromFile(taHandle, fileLocation.c_str());
#else
hr = TA_ActivateFromFile(taHandle, fileLoc.c_str());
#endif
retval->data.intval = hr;
I have verified this works in macOS perfectly, but on the Windows side, even though my debugger output is showing the correct file path to the activation response, the TA_ActivateFromFile()
function is always failing. To be more specific, when I look at the watched variables when I break the program execution, the fileLocation
variable is set to L"C:\\Users\\me\\Downloads\\ActivationResponse.xml"
which was downloaded from LimeLM, not our own Web API that calls LimeLM.
I do see multiple “Access is denied” messages coming from the debug output window that reads:
onecore\com\combase\dcomrem\resolver.cxx(2299)\combase.dll!00007FFA11BC206D: (caller: 00007FFA11BC4F4E) ReturnHr(2) tid(2bcc) 80070005 Access is denied
I verified that the ActivationResponse.xml file has read, write, and execute permissions for all users just to be sure. I've tried multiple different things here, but am at a loss for this one. Any suggestions or thoughts as to why it would fail on Windows but not on macOS given the code?