| OLD | NEW | 
|---|
| 1 /** | 1 /** | 
| 2 * \file interaction.h User interaction classes. Message boxes and translations. | 2  * \file interaction.h User interaction classes. Message boxes and translations. | 
| 3 */ | 3  */ | 
| 4 | 4 | 
| 5 #ifndef INTERACTION_H | 5 #ifndef INTERACTION_H | 
| 6 #define INTERACTION_H | 6 #define INTERACTION_H | 
| 7 | 7 | 
| 8 #include <string> | 8 #include <string> | 
| 9 | 9 | 
| 10 #include "session.h" | 10 #include "session.h" | 
| 11 | 11 | 
| 12 #include <Windows.h> | 12 #include <Windows.h> | 
| 13 #include <Msi.h> | 13 #include <Msi.h> | 
| 14 #include <MsiQuery.h> | 14 #include <MsiQuery.h> | 
| 15 | 15 | 
| 16 /** | 16 /** | 
| 17 * A modal dialog box as displayable from within a custom action. | 17  * A modal dialog box as displayable from within a custom action. | 
| 18 * | 18  * | 
| 19 * The only fully user interface element that the Windows Installer supports for 
     use within custom actions is a small set of modal dialog boxes. | 19  * The only fully user interface element that the Windows Installer supports for
      use within custom actions is a small set of modal dialog boxes. | 
| 20 * The Windows Installer provides the call MsiProcessMessage, overloaded by a set
      of message type constants. | 20  * The Windows Installer provides the call MsiProcessMessage, overloaded by a se
     t of message type constants. | 
| 21 * This class represents those messages with user-provided messages; these ultima
     tely call MessageBox. | 21  * This class represents those messages with user-provided messages; these ultim
     ately call MessageBox. | 
| 22 * | 22  * | 
| 23 * \sa | 23  * \sa | 
| 24 *    * MSDN [MsiProcessMessage function](http://msdn.microsoft.com/en-us/library
     /windows/desktop/aa370354%28v=vs.85%29.aspx) | 24  *    * MSDN [MsiProcessMessage function](http://msdn.microsoft.com/en-us/librar
     y/windows/desktop/aa370354%28v=vs.85%29.aspx) | 
| 25 *    * MSDN [Sending Messages to Windows Installer Using MsiProcessMessage](http
     ://msdn.microsoft.com/en-us/library/windows/desktop/aa371614%28v=vs.85%29.aspx) | 25  *    * MSDN [Sending Messages to Windows Installer Using MsiProcessMessage](htt
     p://msdn.microsoft.com/en-us/library/windows/desktop/aa371614%28v=vs.85%29.aspx) | 
| 26 */ | 26  */ | 
| 27 class Installer_Message_Box | 27 class InstallerMessageBox | 
| 28   : public Message | 28   : public Message | 
| 29 { | 29 { | 
| 30 public: | 30 public: | 
| 31   typedef enum | 31   enum class Box : long | 
| 32   { | 32   { | 
| 33     default_box = 0, | 33     defaultBox = 0, | 
| 34     error_box = INSTALLMESSAGE::INSTALLMESSAGE_ERROR, | 34     error = INSTALLMESSAGE::INSTALLMESSAGE_ERROR, | 
| 35     warning_box = INSTALLMESSAGE::INSTALLMESSAGE_WARNING, | 35     warning = INSTALLMESSAGE::INSTALLMESSAGE_WARNING, | 
| 36     user_box = INSTALLMESSAGE::INSTALLMESSAGE_USER | 36     user = INSTALLMESSAGE::INSTALLMESSAGE_USER | 
| 37   } | 37   } ; | 
| 38   box_type ; |  | 
| 39 | 38 | 
| 40   typedef enum | 39   enum class ButtonSet : long | 
| 41   { | 40   { | 
| 42     default_buttonset = 0, | 41     defaultButtonSet = 0, | 
| 43     ok = MB_OK, | 42     ok = MB_OK, | 
| 44     ok_cancel = MB_OKCANCEL, | 43     okCancel = MB_OKCANCEL, | 
| 45     abort_retry_ignore = MB_ABORTRETRYIGNORE, | 44     abortRetryIgnore = MB_ABORTRETRYIGNORE, | 
| 46     yes_no_cancel = MB_YESNOCANCEL, | 45     yesNoCancel = MB_YESNOCANCEL, | 
| 47     yes_no = MB_YESNO, | 46     yesNo = MB_YESNO, | 
| 48     retry_cancel = MB_RETRYCANCEL | 47     retryCancel = MB_RETRYCANCEL | 
| 49   } | 48   } ; | 
| 50   buttonset_type ; |  | 
| 51 | 49 | 
| 52   typedef enum | 50   enum class DefaultButton : long | 
| 53   { | 51   { | 
| 54     default_default_button = 0,»    ///< use the default button | 52     defaultButton = 0, ///< use the default button | 
| 55     default_button_one = MB_DEFBUTTON1, | 53     one = MB_DEFBUTTON1, | 
| 56     default_button_two = MB_DEFBUTTON2, | 54     two = MB_DEFBUTTON2, | 
| 57     default_button_three = MB_DEFBUTTON3 | 55     three = MB_DEFBUTTON3 | 
| 58   } | 56   } ; | 
| 59   default_button_type ; |  | 
| 60 | 57 | 
| 61   typedef enum | 58   enum class Icon : long | 
| 62   { | 59   { | 
| 63     default_icon = 0,»  »       »           ///< use the default icon associated
      with the box_type | 60     defaultIcon = 0,                        ///< use the default icon associated
      with the box_type | 
| 64     warning_icon = MB_ICONWARNING,»         ///< exclamation point | 61     warningIcon = MB_ICONWARNING,           ///< exclamation point | 
| 65     information_icon = MB_ICONINFORMATION,  ///< lowercase letter "i" in a circl
     e | 62     informationIcon = MB_ICONINFORMATION,   ///< lowercase letter "i" in a circl
     e | 
| 66     error_icon = MB_ICONERROR»  »           ///< stop sign | 63     errorIcon = MB_ICONERROR                ///< stop sign | 
| 67   } | 64   } ; | 
| 68   icon_type ; |  | 
| 69 | 65 | 
| 70   /** | 66   /** | 
| 71   * Ordinary constructor, wide string | 67    * Ordinary constructor, wide string | 
| 72   */ | 68    */ | 
| 73   Installer_Message_Box( | 69   InstallerMessageBox( | 
| 74     std::wstring message, | 70     std::wstring message, | 
| 75     box_type box = box_type::user_box, | 71     Box box = Box::user, | 
| 76     buttonset_type buttonset = buttonset_type::default_buttonset, | 72     ButtonSet buttonset = ButtonSet::defaultButtonSet, | 
| 77     default_button_type default_button = default_button_type::default_default_bu
     tton, | 73     DefaultButton defaultButton = DefaultButton::defaultButton, | 
| 78     icon_type icon = icon_type::default_icon | 74     Icon icon = Icon::defaultIcon | 
| 79     ) ; | 75     ) ; | 
| 80 | 76 | 
| 81   /** | 77   /** | 
| 82   * Ordinary constructor, regular string | 78    * Ordinary constructor, regular string | 
| 83   */ | 79    */ | 
| 84   Installer_Message_Box( | 80   InstallerMessageBox( | 
| 85     std::string message, | 81     std::string message, | 
| 86     box_type box = box_type::user_box, | 82     Box box = Box::user, | 
| 87     buttonset_type buttonset = buttonset_type::default_buttonset, | 83     ButtonSet buttonset = ButtonSet::defaultButtonSet, | 
| 88     default_button_type default_button = default_button_type::default_default_bu
     tton, | 84     DefaultButton defaultButton = DefaultButton::defaultButton, | 
| 89     icon_type icon = icon_type::default_icon | 85     Icon icon = Icon::defaultIcon | 
| 90     ) ; | 86     ) ; | 
| 91 } ; | 87 } ; | 
| 92 | 88 | 
| 93 /** | 89 /** | 
| 94 * Error for any non-handled return value from Session.write_message(). | 90  * Error for any non-handled return value from Session.write_message(). | 
| 95 */ | 91  */ | 
| 96 struct unexpected_return_value_from_message_box | 92 struct UnexpectedReturnValueFromMessageBox | 
| 97   : std::logic_error | 93   : std::logic_error | 
| 98 { | 94 { | 
| 99   unexpected_return_value_from_message_box() | 95   UnexpectedReturnValueFromMessageBox() | 
| 100     : std::logic_error( "Unexpected return value from message box." ) | 96     : std::logic_error( "Unexpected return value from message box." ) | 
| 101   {} | 97   {} | 
| 102 } ; | 98 } ; | 
| 103 | 99 | 
| 104 #endif | 100 #endif | 
| OLD | NEW | 
|---|