Well, problem no.1 is that I can't place the name of the action in the Source field of the type 51 custom action. This is because the action comes from a merge module, and there aren't enough characters in the Source field to hold the name+moduleID.
Problem no.2: What do I do with strProperties? Do I call the Split() function on it? How do I know how to parse it, and get the original property names and values? When I tried typing the value of 'CustomActionData', I got a 0(zero), so I was probably doing sth wrong (it should have contained the value of INSTALLDIR).
More important: What if I have many deferred ca's? Do I have to create a type-51 ca for every one of them? I assume the answer is yes.
Meanwhile, I've solved my problem in a less fashionable way, but it works: I create 3 functions:
'Store': stores properties that I need in a tab-delimited text file in %temp%
'Load': loads it back into an array
'GlobalProperty': the same as the 'Property' method of the Session object - but it works on the array that I mentioned.
Then, in every deferred ca, I just call "Load" before anything, and instead of calling the property("...") method, I call GlobalProperty("..."). This also means that all my deferred ca's must be in the same .VBS file (so that they will recognize the 3 above functions), but it's ok.
Waiting for your reply on the above questions... An example would be appreciated... Thanks!