I found this thread while looking into a similar issue. In case anyone stumbles across it again, here is how we pass ACTIVATE_OPTIONS to the activation function from Inno Setup:
1) Define a record (structure) for the optional data:
type TA_Activate_Options = record nLength : longword; sExtraData : WideString; end;
2) Alter the TA_Activate function wrapper to accept the argument:
function TA_Activate(handle: longint; var options: TA_Activate_Options): longint;external 'TA_Activate@files:TurboActivate.dll,TurboActivate.dat cdecl setuponly delayload';
3) Define a "TA_Activate_Options" variable and pass it to TA_Activate:
taOptions.nLength := 8; //the size of the structure (32-bit) taOptions.sExtraData := GetComputerNameString(); ret := TA_Activate(taHandle, taOptions);
My experience with Pascal scripting is limited, but Inno Setup doesn't seem to have a size() function to set the nLength parameter. A 32-bit installer should define a structure that occupies 8 bytes and I suspect a 64-bit installer would pad the structure to 16 bytes. As Wyatt said, some trial and error may be required.