Many MSI calls can return the user cancel message, not just 
::MsiProcessMessage(). It is possible some other call ate the return 
value. The WcaUtil functions handle this sort of thing for you.

DONG LEE wrote:
> Hi all,
>
> I am trying to detect whether a user cancels within a custom action by doing
>
> the following
>
> UINT __stdcall CA()
> {
>     int retVal = 0;
>     PMSIHANDLE hRecord = MsiCreateRecord(1);
>     ...
>      SomeLongOperation(); // trigger cancellation while this function is
> running
>
>     MsiRecordSetString(hRecord, 0, L"[1]");
>     MsiRecordSetString(hRecord, 1, L"Some Message");
>     retVal = MsiProcessMessage(hInstall, INSTALLMESSAGE_INFO, hRecord);
>     if(retVal == IDCANCEL)
>     {
>         MsiLogWrapper(L"User cancellation is detected!");
>         return ERROR_USER_EXIT;
>     }
>     else
>     {
>         MsiLogWrapper(L"MsiProcessMessage() returned %d", retVal);
>     }
>     ...
> }
>
> The problem is that the value returned by MsiProcessMessage() is always 0.
> And I've confirmed that the installation was cancelled during the
> SomeLongOperation() was running,and the string L"Some Message" is properly
> logged. What is wrong in this
> case? am I missing anything? The CA is scheduled to be a deferred and
> no-impersonate action.
> I wanted to detect it so that I could return ERROR_USER_EXIT from the CA.
> ------------------------------------------------------------------------------
> Enter the BlackBerry Developer Challenge
> This is your chance to win up to $100,000 in prizes! For a limited time,
> vendors submitting new applications to BlackBerry App World(TM) will have
> the opportunity to enter the BlackBerry Developer Challenge. See full prize
> details at: http://p.sf.net/sfu/blackberry
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>   

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to