This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Visual C++ 8 custom action DLLs
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 21, 2007
09:52 AM
Visual C++ 8 custom action DLLs
Hi,
I have a (test) custom action DLL written in VC++8 for my setup project. All the custom action does is "MessageBox(...); return(ERROR_SUCCESS);". I've tested it with VS2005's setup project and it works OK. However when I include it as a custom action in my IS project I get some weird behaviour.
The custom action is executed, but the installer fails saying that it has been interrupted. The log from the MSI says that it returned value 3.
Has anyone seen this problem and solved it before? Ignoring the exit code is not going to be an option for me, neither is switching back to VS2003, which are the only two suggestions I've found so far.
I thought it might have been something to do with the DLL manifests because a FileMon log shows that msiexec tried to open but failed for the embedded manifest and config files in the DLL. I turned off manifest generation but it made no difference.
Thanks.
I have a (test) custom action DLL written in VC++8 for my setup project. All the custom action does is "MessageBox(...); return(ERROR_SUCCESS);". I've tested it with VS2005's setup project and it works OK. However when I include it as a custom action in my IS project I get some weird behaviour.
The custom action is executed, but the installer fails saying that it has been interrupted. The log from the MSI says that it returned value 3.
Has anyone seen this problem and solved it before? Ignoring the exit code is not going to be an option for me, neither is switching back to VS2003, which are the only two suggestions I've found so far.
I thought it might have been something to do with the DLL manifests because a FileMon log shows that msiexec tried to open but failed for the embedded manifest and config files in the DLL. I turned off manifest generation but it made no difference.
Thanks.
(3) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 24, 2007
02:59 AM
I figured out my problem after re-reading the manual this morning. Despite the function prototype for the "New" mode being described as "using the standard MSI custom action signature", it doesn't. The return value is different. I wouldn't call that standard.
![](/skins/images/3B39CE851FDD5528C393F146EB70A2D0/responsive_peak/images/icon_anonymous_message.png)
Not applicable
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 24, 2007
08:21 AM
I don't understand what you mean by "The return value is different".
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 24, 2007
08:30 AM
In a standard Windows Installer custom action DLL function the return value can be one of ERROR_FUNCTION_NOT_CALLED, ERROR_SUCCESS (which has value 0), ERROR_INSTALL_USEREXIT, ERROR_INSTALL_FAILURE or ERROR_NO_MORE_ITEMS.
IS expects that your custom action DLL function returns 0 for failure and non-zero for success.
IS expects that your custom action DLL function returns 0 for failure and non-zero for success.
![](/skins/images/3B39CE851FDD5528C393F146EB70A2D0/responsive_peak/images/icon_anonymous_message.png)