OLD | NEW |
1 /** | 1 /** |
2 * \file session.h The "install session" is the context for all custom installati
on behavior. | 2 * \file session.h The "install session" is the context for all custom installati
on behavior. |
3 */ | 3 */ |
4 | 4 |
5 #ifndef SESSION_H | 5 #ifndef SESSION_H |
6 #define SESSION_H | 6 #define SESSION_H |
7 | 7 |
8 #include "property.h" | 8 #include "property.h" |
9 #include "record.h" | 9 #include "record.h" |
10 | 10 |
11 #include <string> | 11 #include <string> |
12 #include "windows.h" | 12 #include "windows.h" |
13 #include "msi.h" | 13 #include "msi.h" |
14 | 14 |
15 //------------------------------------------------------------------------------
----------- | 15 //------------------------------------------------------------------------------
----------- |
16 // Message | 16 // Message |
17 //------------------------------------------------------------------------------
----------- | 17 //------------------------------------------------------------------------------
----------- |
18 /** | 18 /** |
19 * Wrapper class for arguments to MsiProcessMessage. | 19 * Wrapper class for arguments to MsiProcessMessage. |
20 * | 20 * |
21 * The "user interface" for custom actions includes both interactive dialog boxes
as well as the installation log. | 21 * The "user interface" for custom actions includes both interactive dialog boxe
s as well as the installation log. |
22 * All of them use the same call, MsiProcessMessage. | 22 * All of them use the same call, MsiProcessMessage. |
23 * This class encapsulates its arguments. | 23 * This class encapsulates its arguments. |
24 * | 24 * |
25 * \sa | 25 * \sa |
26 * * MSDN [MsiProcessMessage function](http://msdn.microsoft.com/en-us/library
/windows/desktop/aa370354%28v=vs.85%29.aspx) | 26 * * MSDN [MsiProcessMessage function](http://msdn.microsoft.com/en-us/librar
y/windows/desktop/aa370354%28v=vs.85%29.aspx) |
27 * * MSDN [Sending Messages to Windows Installer Using MsiProcessMessage](http
://msdn.microsoft.com/en-us/library/windows/desktop/aa371614%28v=vs.85%29.aspx) | 27 * * MSDN [Sending Messages to Windows Installer Using MsiProcessMessage](htt
p://msdn.microsoft.com/en-us/library/windows/desktop/aa371614%28v=vs.85%29.aspx) |
28 */ | 28 */ |
29 class Message | 29 class Message |
30 { | 30 { |
31 protected: | 31 protected: |
32 /** | 32 /** |
33 * The flags used by MsiProcessMessage as the box type. | 33 * The flags used by MsiProcessMessage as the box type. |
34 */ | 34 */ |
35 INSTALLMESSAGE message_type ; | 35 INSTALLMESSAGE MessageTypeCode ; |
36 | 36 |
37 /** | 37 /** |
38 * The record argument to MsiProcessMessage | 38 * The record argument to MsiProcessMessage |
39 */ | 39 */ |
40 Record r ; | 40 Record r ; |
41 | 41 |
42 Message( std::string message, INSTALLMESSAGE message_type ) ; | 42 Message( std::string message, INSTALLMESSAGE MessageTypeCode ) ; |
43 | 43 |
44 Message( std::wstring message, INSTALLMESSAGE message_type ) ; | 44 Message( std::wstring message, INSTALLMESSAGE MessageTypeCode ) ; |
45 | 45 |
46 /** | 46 /** |
47 * This class is a helper for Session, mustering all the arguments for MsiProce
ssMessage except for the session handle. | 47 * This class is a helper for Session, mustering all the arguments for MsiProce
ssMessage except for the session handle. |
48 */ | 48 */ |
49 friend Session ; | 49 friend Session ; |
50 } ; | 50 } ; |
51 | 51 |
52 //------------------------------------------------------------------------------
----------- | 52 //------------------------------------------------------------------------------
----------- |
53 // Session | 53 // Session |
54 //------------------------------------------------------------------------------
----------- | 54 //------------------------------------------------------------------------------
----------- |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 * The life cycle of the session handle is not the responsibility of the base c
lass. | 122 * The life cycle of the session handle is not the responsibility of the base c
lass. |
123 * In an interactive session, the handle is provided as an argument to the cust
om action entry point, and we do not manage its life cycle. | 123 * In an interactive session, the handle is provided as an argument to the cust
om action entry point, and we do not manage its life cycle. |
124 * In an offline session, the handle is created in the (subclass) constructor. | 124 * In an offline session, the handle is created in the (subclass) constructor. |
125 */ | 125 */ |
126 MSIHANDLE handle ; | 126 MSIHANDLE handle ; |
127 | 127 |
128 private: | 128 private: |
129 /** | 129 /** |
130 * Prefix for log messages, regular string. Contains the name of the custom act
ion. | 130 * Prefix for log messages, regular string. Contains the name of the custom act
ion. |
131 */ | 131 */ |
132 std::string log_prefix ; | 132 std::string logPrefix ; |
133 | 133 |
134 /** | 134 /** |
135 * Prefix for log messages, wide string. Contains the name of the custom action
. | 135 * Prefix for log messages, wide string. Contains the name of the custom action
. |
136 */ | 136 */ |
137 std::wstring log_prefix_w ; | 137 std::wstring logPrefixW ; |
138 | 138 |
139 /** | 139 /** |
140 * Private copy constructor is declared but not defined. | 140 * Private copy constructor is declared but not defined. |
141 * | 141 * |
142 * C++11: declare with <b>= delete</b>. | 142 * C++11: declare with <b>= delete</b>. |
143 */ | 143 */ |
144 Session( const Session & ) ; | 144 Session( const Session & ) ; |
145 | 145 |
146 /** | 146 /** |
147 * Write a message with MsiProcessMessage and throw no exceptions. | 147 * Write a message with MsiProcessMessage and throw no exceptions. |
148 * | 148 * |
149 * This is declared private because there are very few cases in which no-except
ion behavior is required. | 149 * This is declared private because there are very few cases in which no-except
ion behavior is required. |
150 * | 150 * |
151 * C++11: declare with **noexcept**. | 151 * C++11: declare with **noexcept**. |
152 */ | 152 */ |
153 int write_message_noexcept( Message & m ) ; | 153 int WriteMessageNoexcept( Message & m ) ; |
154 | 154 |
155 /** | 155 /** |
156 * Private assignment operator is declared but not defined. | 156 * Private assignment operator is declared but not defined. |
157 * | 157 * |
158 * C++11: declare with <b>= delete</b>. | 158 * C++11: declare with <b>= delete</b>. |
159 */ | 159 */ |
160 Session & operator=( const Session & ) ; | 160 Session & operator=( const Session & ) ; |
161 | 161 |
162 /** | 162 /** |
163 * The Property class requires access to the session handle. | 163 * The Property class requires access to the session handle. |
(...skipping 19 matching lines...) Expand all Loading... |
183 * Handle for the Windows Installer session provided as an argument to a cus
tom action. | 183 * Handle for the Windows Installer session provided as an argument to a cus
tom action. |
184 * \param[in] name | 184 * \param[in] name |
185 * The name of the custom action, used for logging. | 185 * The name of the custom action, used for logging. |
186 * | 186 * |
187 * **noexcept** declaration to be added for C++11. | 187 * **noexcept** declaration to be added for C++11. |
188 */ | 188 */ |
189 ImmediateSession( MSIHANDLE handle, std::string name ) ; | 189 ImmediateSession( MSIHANDLE handle, std::string name ) ; |
190 | 190 |
191 private: | 191 private: |
192 /* | 192 /* |
193 * Allow helper function for Installation_Database constructor to have access t
o the handle. | 193 * Allow helper function for InstallationDatabase constructor to have access to
the handle. |
194 */ | 194 */ |
195 friend msi_handle get_active_database( ImmediateSession & session ) ; | 195 friend MsiHandle GetActiveDatabase( ImmediateSession & session ) ; |
196 }; | 196 }; |
197 | 197 |
198 | 198 |
199 //------------------------------------------------------------------------------
----------- | 199 //------------------------------------------------------------------------------
----------- |
200 // Deferred_Session | 200 // DeferredSession |
201 //------------------------------------------------------------------------------
----------- | 201 //------------------------------------------------------------------------------
----------- |
202 /** | 202 /** |
203 * Session for deferred custom actions. | 203 * Session for deferred custom actions. |
204 * | 204 * |
205 * There's much less context information easily available from a deferred custom
action. | 205 * There's much less context information easily available from a deferred custom
action. |
206 * | 206 * |
207 * /sa MDSN "Deferred Execution Custom Actions" | 207 * /sa MDSN "Deferred Execution Custom Actions" |
208 * http://msdn.microsoft.com/en-us/library/windows/desktop/aa368268%28v=vs.85
%29.aspx | 208 * http://msdn.microsoft.com/en-us/library/windows/desktop/aa368268%28v=vs.85
%29.aspx |
209 * for general information. | 209 * for general information. |
210 * | 210 * |
211 * /sa MSDN "Obtaining Context Information for Deferred Execution Custom Actions" | 211 * /sa MSDN "Obtaining Context Information for Deferred Execution Custom Actions" |
212 * http://msdn.microsoft.com/en-us/library/windows/desktop/aa370543%28v=vs.85
%29.aspx | 212 * http://msdn.microsoft.com/en-us/library/windows/desktop/aa370543%28v=vs.85
%29.aspx |
213 * lists the API calls available. | 213 * lists the API calls available. |
214 */ | 214 */ |
215 class Deferred_Session : public Session | 215 class DeferredSession : public Session |
216 { | 216 { |
217 public: | 217 public: |
218 /** | 218 /** |
219 * Ordinary constructor. | 219 * Ordinary constructor. |
220 * | 220 * |
221 * \param[in] handle | 221 * \param[in] handle |
222 * Handle for the Windows Installer session provided as an argument to a cus
tom action. | 222 * Handle for the Windows Installer session provided as an argument to a cus
tom action. |
223 * \param[in] name | 223 * \param[in] name |
224 * The name of the custom action, used for logging. | 224 * The name of the custom action, used for logging. |
225 */ | 225 */ |
226 Deferred_Session( MSIHANDLE handle, std::wstring name ) ; | 226 DeferredSession( MSIHANDLE handle, std::wstring name ) ; |
227 }; | 227 }; |
228 | 228 |
229 | 229 |
230 //------------------------------------------------------------------------------
----------- | 230 //------------------------------------------------------------------------------
----------- |
231 // Commit_Session | 231 // CommitSession |
232 //------------------------------------------------------------------------------
----------- | 232 //------------------------------------------------------------------------------
----------- |
233 /** | 233 /** |
234 * The session for a commit custom action. NOT IMPLEMENTED. | 234 * The session for a commit custom action. NOT IMPLEMENTED. |
235 * | 235 * |
236 * \sa MSDN "Commit Custom Actions" http://msdn.microsoft.com/en-us/library/windo
ws/desktop/aa367991%28v=vs.85%29.aspx | 236 * \sa MSDN "Commit Custom Actions" http://msdn.microsoft.com/en-us/library/windo
ws/desktop/aa367991%28v=vs.85%29.aspx |
237 */ | 237 */ |
238 class Commit_Session | 238 class CommitSession |
239 { | 239 { |
240 }; | 240 }; |
241 | 241 |
242 //------------------------------------------------------------------------------
----------- | 242 //------------------------------------------------------------------------------
----------- |
243 // Rollback_Session | 243 // RollbackSession |
244 //------------------------------------------------------------------------------
----------- | 244 //------------------------------------------------------------------------------
----------- |
245 /** | 245 /** |
246 * The session for a rollback custom action. NOT IMPLEMENTED. | 246 * The session for a rollback custom action. NOT IMPLEMENTED. |
247 * | 247 * |
248 * \sa MSDN "Rollback Custom Actions" http://msdn.microsoft.com/en-us/library/win
dows/desktop/aa371369%28v=vs.85%29.aspx | 248 * \sa MSDN "Rollback Custom Actions" http://msdn.microsoft.com/en-us/library/win
dows/desktop/aa371369%28v=vs.85%29.aspx |
249 */ | 249 */ |
250 class Rollback_Session | 250 class RollbackSession |
251 { | 251 { |
252 }; | 252 }; |
253 | 253 |
254 #endif | 254 #endif |
OLD | NEW |