I don't found official description and work arrouns of this bug...
1. MsiProcessMessage don't work fine in CustomAction executed with DoAction on Button control. Its return 0 and do nothing - you can't write log, show message box and another tasks.
2. If you call second CustomAction (using MsiDoAction) from CustomAction (Publish Events on Button control) and call MsiProcessMessage in this (second) action it do nothing and no return to caller - installation was halted and you must use TaskManager to kill msiexec processes.
Anyone know how to fix it?
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
WARNING! Bug with MsiProcessMessage
Started by
Generous
, Sep 11 2002 15:10
2 replies to this topic
Posted 11 September 2002 - 15:10
Evgeny Ushkaloff
Senior Software Developer / Setup Coordinator
Aelita Software Corporation
www.aelita.com
Senior Software Developer / Setup Coordinator
Aelita Software Corporation
www.aelita.com
Posted 11 September 2002 - 19:08
It's not a bug - it's documented. From MSI Help topic "DoAction ControlEvent":
Quote |
Note that custom actions launched by the DoAction control event cannot send messages with MsiProcessMessage or Message method. |
Stefan Krüger
InstallSite.org twitter facebook
Posted 12 September 2002 - 07:03
Yes... It's true.
But it's valid for first case and it's work fine - do nothing and return to caller.
But in second case - it's very bad style: don't return to caller - may be this is bug?
How to detect in CustomAction that is launch from another CustomAction called by Button?
I have only one not very good idea:
1. Setting some property (i.e. _CalledFromDoAction) to 1
2. Call MsiDoAction(...) - in this action check _CalledFromDoAction and not execute MsiProcessMessage functions if it = 1.
3. Setting _CalledFromDoAction to nothing.
Sorry my bad english...
But it's valid for first case and it's work fine - do nothing and return to caller.
But in second case - it's very bad style: don't return to caller - may be this is bug?
How to detect in CustomAction that is launch from another CustomAction called by Button?
I have only one not very good idea:
1. Setting some property (i.e. _CalledFromDoAction) to 1
2. Call MsiDoAction(...) - in this action check _CalledFromDoAction and not execute MsiProcessMessage functions if it = 1.
3. Setting _CalledFromDoAction to nothing.
Sorry my bad english...
Evgeny Ushkaloff
Senior Software Developer / Setup Coordinator
Aelita Software Corporation
www.aelita.com
Senior Software Developer / Setup Coordinator
Aelita Software Corporation
www.aelita.com