diff options
Diffstat (limited to 'src/libs/wcautil/WixToolset.WcaUtil/inc/wcautil.h')
-rw-r--r-- | src/libs/wcautil/WixToolset.WcaUtil/inc/wcautil.h | 397 |
1 files changed, 397 insertions, 0 deletions
diff --git a/src/libs/wcautil/WixToolset.WcaUtil/inc/wcautil.h b/src/libs/wcautil/WixToolset.WcaUtil/inc/wcautil.h new file mode 100644 index 00000000..4d036a9d --- /dev/null +++ b/src/libs/wcautil/WixToolset.WcaUtil/inc/wcautil.h | |||
@@ -0,0 +1,397 @@ | |||
1 | #pragma once | ||
2 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
3 | |||
4 | |||
5 | #ifdef __cplusplus | ||
6 | extern "C" { | ||
7 | #endif | ||
8 | |||
9 | #include "dutilsources.h" | ||
10 | |||
11 | #define WIXAPI __stdcall | ||
12 | #ifndef DUTIL_SOURCE_DEFAULT | ||
13 | #define DUTIL_SOURCE_DEFAULT DUTIL_SOURCE_EXTERNAL | ||
14 | #endif | ||
15 | |||
16 | #include "dutil.h" | ||
17 | |||
18 | #define MessageExitOnLastErrorSource(d, x, e, s, ...) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ExitTraceSource(d, x, "%s", s, __VA_ARGS__); WcaErrorMessage(e, x, MB_OK, -1, __VA_ARGS__); goto LExit; } } | ||
19 | #define MessageExitOnFailureSource(d, x, e, s, ...) if (FAILED(x)) { ExitTraceSource(d, x, "%s", s, __VA_ARGS__); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, -1, __VA_ARGS__); goto LExit; } | ||
20 | #define MessageExitOnNullWithLastErrorSource(d, p, x, e, s, ...) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTraceSource(d, x, "%s", s, __VA_ARGS__); WcaErrorMessage(e, x, MB_OK, -1, __VA_ARGS__); goto LExit; } | ||
21 | |||
22 | #define MessageExitOnLastError(x, e, s, ...) MessageExitOnLastErrorSource(DUTIL_SOURCE_DEFAULT, x, e, s, __VA_ARGS__) | ||
23 | #define MessageExitOnFailure(x, e, s, ...) MessageExitOnFailureSource(DUTIL_SOURCE_DEFAULT, x, e, s, __VA_ARGS__) | ||
24 | #define MessageExitOnNullWithLastError(p, x, e, s, ...) MessageExitOnNullWithLastErrorSource(DUTIL_SOURCE_DEFAULT, p, x, e, s, __VA_ARGS__) | ||
25 | |||
26 | // Generic action enum. | ||
27 | typedef enum WCA_ACTION | ||
28 | { | ||
29 | WCA_ACTION_NONE, | ||
30 | WCA_ACTION_INSTALL, | ||
31 | WCA_ACTION_UNINSTALL, | ||
32 | } WCA_ACTION; | ||
33 | |||
34 | typedef enum WCA_CASCRIPT | ||
35 | { | ||
36 | WCA_CASCRIPT_SCHEDULED, | ||
37 | WCA_CASCRIPT_ROLLBACK, | ||
38 | } WCA_CASCRIPT; | ||
39 | |||
40 | typedef enum WCA_CASCRIPT_CLOSE | ||
41 | { | ||
42 | WCA_CASCRIPT_CLOSE_PRESERVE, | ||
43 | WCA_CASCRIPT_CLOSE_DELETE, | ||
44 | } WCA_CASCRIPT_CLOSE; | ||
45 | |||
46 | typedef enum WCA_TODO | ||
47 | { | ||
48 | WCA_TODO_UNKNOWN, | ||
49 | WCA_TODO_INSTALL, | ||
50 | WCA_TODO_UNINSTALL, | ||
51 | WCA_TODO_REINSTALL, | ||
52 | } WCA_TODO; | ||
53 | |||
54 | typedef struct WCA_CASCRIPT_STRUCT | ||
55 | { | ||
56 | LPWSTR pwzScriptPath; | ||
57 | HANDLE hScriptFile; | ||
58 | } *WCA_CASCRIPT_HANDLE; | ||
59 | |||
60 | typedef enum WCA_ENCODING | ||
61 | { | ||
62 | WCA_ENCODING_UNKNOWN, | ||
63 | WCA_ENCODING_UTF_16, | ||
64 | WCA_ENCODING_UTF_8, | ||
65 | WCA_ENCODING_ANSI, | ||
66 | } WCA_ENCODING; | ||
67 | |||
68 | void WIXAPI WcaGlobalInitialize( | ||
69 | __in HINSTANCE hInst | ||
70 | ); | ||
71 | void WIXAPI WcaGlobalFinalize(); | ||
72 | |||
73 | HRESULT WIXAPI WcaInitialize( | ||
74 | __in MSIHANDLE hInstall, | ||
75 | __in_z PCSTR szCustomActionLogName | ||
76 | ); | ||
77 | UINT WIXAPI WcaFinalize( | ||
78 | __in UINT iReturnValue | ||
79 | ); | ||
80 | BOOL WIXAPI WcaIsInitialized(); | ||
81 | |||
82 | MSIHANDLE WIXAPI WcaGetInstallHandle(); | ||
83 | MSIHANDLE WIXAPI WcaGetDatabaseHandle(); | ||
84 | |||
85 | const char* WIXAPI WcaGetLogName(); | ||
86 | |||
87 | void WIXAPI WcaSetReturnValue( | ||
88 | __in UINT iReturnValue | ||
89 | ); | ||
90 | BOOL WIXAPI WcaCancelDetected(); | ||
91 | |||
92 | #define LOG_BUFFER 2048 | ||
93 | typedef enum LOGLEVEL | ||
94 | { | ||
95 | LOGMSG_TRACEONLY, // Never written to the log file (except in DEBUG builds) | ||
96 | LOGMSG_VERBOSE, // Written to log when LOGVERBOSE | ||
97 | LOGMSG_STANDARD // Written to log whenever informational logging is enabled | ||
98 | } LOGLEVEL; | ||
99 | |||
100 | void __cdecl WcaLog( | ||
101 | __in LOGLEVEL llv, | ||
102 | __in_z __format_string PCSTR fmt, ... | ||
103 | ); | ||
104 | BOOL WIXAPI WcaDisplayAssert( | ||
105 | __in LPCSTR sz | ||
106 | ); | ||
107 | void __cdecl WcaLogError( | ||
108 | __in HRESULT hr, | ||
109 | __in LPCSTR szMessage, | ||
110 | ... | ||
111 | ); | ||
112 | void WIXAPI WcaLogErrorArgs( | ||
113 | __in HRESULT hr, | ||
114 | __in LPCSTR szMessage, | ||
115 | __in va_list args | ||
116 | ); | ||
117 | |||
118 | UINT WIXAPI WcaProcessMessage( | ||
119 | __in INSTALLMESSAGE eMessageType, | ||
120 | __in MSIHANDLE hRecord | ||
121 | ); | ||
122 | UINT __cdecl WcaErrorMessage( | ||
123 | __in int iError, | ||
124 | __in HRESULT hrError, | ||
125 | __in UINT uiType, | ||
126 | __in INT cArgs, | ||
127 | ... | ||
128 | ); | ||
129 | HRESULT WIXAPI WcaProgressMessage( | ||
130 | __in UINT uiCost, | ||
131 | __in BOOL fExtendProgressBar | ||
132 | ); | ||
133 | |||
134 | BOOL WIXAPI WcaIsInstalling( | ||
135 | __in INSTALLSTATE isInstalled, | ||
136 | __in INSTALLSTATE isAction | ||
137 | ); | ||
138 | BOOL WIXAPI WcaIsReInstalling( | ||
139 | __in INSTALLSTATE isInstalled, | ||
140 | __in INSTALLSTATE isAction | ||
141 | ); | ||
142 | BOOL WIXAPI WcaIsUninstalling( | ||
143 | __in INSTALLSTATE isInstalled, | ||
144 | __in INSTALLSTATE isAction | ||
145 | ); | ||
146 | |||
147 | HRESULT WIXAPI WcaSetComponentState( | ||
148 | __in_z LPCWSTR wzComponent, | ||
149 | __in INSTALLSTATE isState | ||
150 | ); | ||
151 | |||
152 | HRESULT WIXAPI WcaTableExists( | ||
153 | __in_z LPCWSTR wzTable | ||
154 | ); | ||
155 | |||
156 | HRESULT WIXAPI WcaOpenView( | ||
157 | __in_z LPCWSTR wzSql, | ||
158 | __out MSIHANDLE* phView | ||
159 | ); | ||
160 | HRESULT WIXAPI WcaExecuteView( | ||
161 | __in MSIHANDLE hView, | ||
162 | __in MSIHANDLE hRec | ||
163 | ); | ||
164 | HRESULT WIXAPI WcaOpenExecuteView( | ||
165 | __in_z LPCWSTR wzSql, | ||
166 | __out MSIHANDLE* phView | ||
167 | ); | ||
168 | HRESULT WIXAPI WcaFetchRecord( | ||
169 | __in MSIHANDLE hView, | ||
170 | __out MSIHANDLE* phRec | ||
171 | ); | ||
172 | HRESULT WIXAPI WcaFetchSingleRecord( | ||
173 | __in MSIHANDLE hView, | ||
174 | __out MSIHANDLE* phRec | ||
175 | ); | ||
176 | |||
177 | HRESULT WIXAPI WcaGetProperty( | ||
178 | __in_z LPCWSTR wzProperty, | ||
179 | __inout LPWSTR* ppwzData | ||
180 | ); | ||
181 | HRESULT WIXAPI WcaGetFormattedProperty( | ||
182 | __in_z LPCWSTR wzProperty, | ||
183 | __out LPWSTR* ppwzData | ||
184 | ); | ||
185 | HRESULT WIXAPI WcaGetFormattedString( | ||
186 | __in_z LPCWSTR wzString, | ||
187 | __out LPWSTR* ppwzData | ||
188 | ); | ||
189 | HRESULT WIXAPI WcaGetIntProperty( | ||
190 | __in_z LPCWSTR wzProperty, | ||
191 | __inout int* piData | ||
192 | ); | ||
193 | HRESULT WIXAPI WcaGetTargetPath( | ||
194 | __in_z LPCWSTR wzFolder, | ||
195 | __out LPWSTR* ppwzData | ||
196 | ); | ||
197 | HRESULT WIXAPI WcaSetProperty( | ||
198 | __in_z LPCWSTR wzPropertyName, | ||
199 | __in_z LPCWSTR wzPropertyValue | ||
200 | ); | ||
201 | HRESULT WIXAPI WcaSetIntProperty( | ||
202 | __in_z LPCWSTR wzPropertyName, | ||
203 | __in int nPropertyValue | ||
204 | ); | ||
205 | BOOL WIXAPI WcaIsPropertySet( | ||
206 | __in LPCSTR szProperty | ||
207 | ); | ||
208 | BOOL WIXAPI WcaIsUnicodePropertySet( | ||
209 | __in LPCWSTR wzProperty | ||
210 | ); | ||
211 | |||
212 | HRESULT WIXAPI WcaGetRecordInteger( | ||
213 | __in MSIHANDLE hRec, | ||
214 | __in UINT uiField, | ||
215 | __inout int* piData | ||
216 | ); | ||
217 | HRESULT WIXAPI WcaGetRecordString( | ||
218 | __in MSIHANDLE hRec, | ||
219 | __in UINT uiField, | ||
220 | __inout LPWSTR* ppwzData | ||
221 | ); | ||
222 | HRESULT WIXAPI WcaGetRecordFormattedInteger( | ||
223 | __in MSIHANDLE hRec, | ||
224 | __in UINT uiField, | ||
225 | __out int* piData | ||
226 | ); | ||
227 | HRESULT WIXAPI WcaGetRecordFormattedString( | ||
228 | __in MSIHANDLE hRec, | ||
229 | __in UINT uiField, | ||
230 | __inout LPWSTR* ppwzData | ||
231 | ); | ||
232 | |||
233 | HRESULT WIXAPI WcaAllocStream( | ||
234 | __deref_out_bcount_part(cbData, 0) BYTE** ppbData, | ||
235 | __in SIZE_T cbData | ||
236 | ); | ||
237 | HRESULT WIXAPI WcaFreeStream( | ||
238 | __in BYTE* pbData | ||
239 | ); | ||
240 | |||
241 | HRESULT WIXAPI WcaGetRecordStream( | ||
242 | __in MSIHANDLE hRecBinary, | ||
243 | __in UINT uiField, | ||
244 | __deref_out_bcount_full(*pcbData) BYTE** ppbData, | ||
245 | __out DWORD* pcbData | ||
246 | ); | ||
247 | HRESULT WIXAPI WcaSetRecordString( | ||
248 | __in MSIHANDLE hRec, | ||
249 | __in UINT uiField, | ||
250 | __in_z LPCWSTR wzData | ||
251 | ); | ||
252 | HRESULT WIXAPI WcaSetRecordInteger( | ||
253 | __in MSIHANDLE hRec, | ||
254 | __in UINT uiField, | ||
255 | __in int iValue | ||
256 | ); | ||
257 | |||
258 | HRESULT WIXAPI WcaDoDeferredAction( | ||
259 | __in_z LPCWSTR wzAction, | ||
260 | __in_z LPCWSTR wzCustomActionData, | ||
261 | __in UINT uiCost | ||
262 | ); | ||
263 | DWORD WIXAPI WcaCountOfCustomActionDataRecords( | ||
264 | __in_z LPCWSTR wzData | ||
265 | ); | ||
266 | |||
267 | HRESULT WIXAPI WcaReadStringFromCaData( | ||
268 | __deref_in LPWSTR* ppwzCustomActionData, | ||
269 | __deref_out_z LPWSTR* ppwzString | ||
270 | ); | ||
271 | HRESULT WIXAPI WcaReadIntegerFromCaData( | ||
272 | __deref_in LPWSTR* ppwzCustomActionData, | ||
273 | __out int* piResult | ||
274 | ); | ||
275 | HRESULT WIXAPI WcaReadStreamFromCaData( | ||
276 | __deref_in LPWSTR* ppwzCustomActionData, | ||
277 | __deref_out_bcount(*pcbData) BYTE** ppbData, | ||
278 | __out DWORD_PTR* pcbData | ||
279 | ); | ||
280 | HRESULT WIXAPI WcaWriteStringToCaData( | ||
281 | __in_z LPCWSTR wzString, | ||
282 | __deref_inout_z LPWSTR* ppwzCustomActionData | ||
283 | ); | ||
284 | HRESULT WIXAPI WcaWriteIntegerToCaData( | ||
285 | __in int i, | ||
286 | __deref_out_z_opt LPWSTR* ppwzCustomActionData | ||
287 | ); | ||
288 | HRESULT WIXAPI WcaWriteStreamToCaData( | ||
289 | __in_bcount(cbData) const BYTE* pbData, | ||
290 | __in SIZE_T cbData, | ||
291 | __deref_inout_z_opt LPWSTR* ppwzCustomActionData | ||
292 | ); | ||
293 | |||
294 | HRESULT __cdecl WcaAddTempRecord( | ||
295 | __inout MSIHANDLE* phTableView, | ||
296 | __inout MSIHANDLE* phColumns, | ||
297 | __in_z LPCWSTR wzTable, | ||
298 | __out_opt MSIDBERROR* pdbError, | ||
299 | __in UINT uiUniquifyColumn, | ||
300 | __in UINT cColumns, | ||
301 | ... | ||
302 | ); | ||
303 | |||
304 | HRESULT WIXAPI WcaDumpTable( | ||
305 | __in_z LPCWSTR wzTable | ||
306 | ); | ||
307 | |||
308 | HRESULT WIXAPI WcaDeferredActionRequiresReboot(); | ||
309 | BOOL WIXAPI WcaDidDeferredActionRequireReboot(); | ||
310 | |||
311 | HRESULT WIXAPI WcaCaScriptCreateKey( | ||
312 | __out LPWSTR* ppwzScriptKey | ||
313 | ); | ||
314 | |||
315 | HRESULT WIXAPI WcaCaScriptCreate( | ||
316 | __in WCA_ACTION action, | ||
317 | __in WCA_CASCRIPT script, | ||
318 | __in BOOL fImpersonated, | ||
319 | __in_z LPCWSTR wzScriptKey, | ||
320 | __in BOOL fAppend, | ||
321 | __out WCA_CASCRIPT_HANDLE* phScript | ||
322 | ); | ||
323 | |||
324 | HRESULT WIXAPI WcaCaScriptOpen( | ||
325 | __in WCA_ACTION action, | ||
326 | __in WCA_CASCRIPT script, | ||
327 | __in BOOL fImpersonated, | ||
328 | __in_z LPCWSTR wzScriptKey, | ||
329 | __out WCA_CASCRIPT_HANDLE* phScript | ||
330 | ); | ||
331 | |||
332 | void WIXAPI WcaCaScriptClose( | ||
333 | __in_opt WCA_CASCRIPT_HANDLE hScript, | ||
334 | __in WCA_CASCRIPT_CLOSE closeOperation | ||
335 | ); | ||
336 | |||
337 | HRESULT WIXAPI WcaCaScriptReadAsCustomActionData( | ||
338 | __in WCA_CASCRIPT_HANDLE hScript, | ||
339 | __out LPWSTR* ppwzCustomActionData | ||
340 | ); | ||
341 | |||
342 | HRESULT WIXAPI WcaCaScriptWriteString( | ||
343 | __in WCA_CASCRIPT_HANDLE hScript, | ||
344 | __in_z LPCWSTR wzValue | ||
345 | ); | ||
346 | |||
347 | HRESULT WIXAPI WcaCaScriptWriteNumber( | ||
348 | __in WCA_CASCRIPT_HANDLE hScript, | ||
349 | __in DWORD dwValue | ||
350 | ); | ||
351 | |||
352 | void WIXAPI WcaCaScriptFlush( | ||
353 | __in WCA_CASCRIPT_HANDLE hScript | ||
354 | ); | ||
355 | |||
356 | void WIXAPI WcaCaScriptCleanup( | ||
357 | __in_z LPCWSTR wzProductCode, | ||
358 | __in BOOL fImpersonated | ||
359 | ); | ||
360 | |||
361 | HRESULT WIXAPI QuietExec( | ||
362 | __inout_z LPWSTR wzCommand, | ||
363 | __in DWORD dwTimeout, | ||
364 | __in BOOL fLogCommand, | ||
365 | __in BOOL fLogOutput | ||
366 | ); | ||
367 | |||
368 | HRESULT WIXAPI QuietExecCapture( | ||
369 | __inout_z LPWSTR wzCommand, | ||
370 | __in DWORD dwTimeout, | ||
371 | __in BOOL fLogCommand, | ||
372 | __in BOOL fLogOutput, | ||
373 | __out_z_opt LPWSTR* psczOutput | ||
374 | ); | ||
375 | |||
376 | WCA_TODO WIXAPI WcaGetComponentToDo( | ||
377 | __in_z LPCWSTR wzComponentId | ||
378 | ); | ||
379 | |||
380 | HRESULT WIXAPI WcaExtractBinaryToBuffer( | ||
381 | __in LPCWSTR wzBinaryId, | ||
382 | __out BYTE** pbData, | ||
383 | __out DWORD* pcbData | ||
384 | ); | ||
385 | HRESULT WIXAPI WcaExtractBinaryToFile( | ||
386 | __in LPCWSTR wzBinaryId, | ||
387 | __in LPCWSTR wzPath | ||
388 | ); | ||
389 | HRESULT WIXAPI WcaExtractBinaryToString( | ||
390 | __in LPCWSTR wzBinaryId, | ||
391 | __deref_out_z LPWSTR* psczOutput, | ||
392 | __out WCA_ENCODING* encoding | ||
393 | ); | ||
394 | |||
395 | #ifdef __cplusplus | ||
396 | } | ||
397 | #endif | ||