29 #include "../tapctl/basic.h" 33 #pragma warning(disable: 4200) 40 #define MSICA_MAKE_OP_TYPE(op, data) (((op)<<4)|((data)&0xf)) 41 #define MSICA_OP_TYPE_OP(type) ((unsigned int)(type)>>4) 42 #define MSICA_OP_TYPE_DATA(type) ((unsigned int)(type)&0xf) 195 _In_ va_list arglist);
228 _In_ const GUID *value);
264 _In_ const GUID *value_guid,
265 _In_z_ LPCTSTR value_str);
290 va_start(arglist, next);
307 return seq->head != NULL;
374 #define MSICA_CLEANUP_ACTION_COMMIT 0 375 #define MSICA_CLEANUP_ACTION_ROLLBACK 1 376 #define MSICA_CLEANUP_ACTION_COUNT 2 405 _In_ MSIHANDLE hInstall,
406 _In_ bool continue_on_error,
407 _In_ bool rollback_enabled);
msica_op_type
Operation types.
Delete TAP/TUN interface | msica_op_string.
struct msica_op * msica_op_create_guid_string(_In_ enum msica_op_type type, _In_ int ticks, _In_opt_ struct msica_op *next, _In_ const GUID *value_guid, _In_z_ LPCTSTR value_str)
Allocates and fills a new msica_op_guid_string operation.
DWORD msica_op_seq_load(_Inout_ struct msica_op_seq *seq, _In_ HANDLE hFile)
Loads the operation sequence from the file.
Operation data (bool, 0x1)
bool rollback_enabled
Continue execution on operation error?
DWORD msica_op_seq_process(_Inout_ const struct msica_op_seq *seq, _Inout_ struct msica_session *session)
Executes all operations in sequence.
void msica_op_seq_init(_Inout_ struct msica_op_seq *seq)
Initializes operation sequence.
GUID value
Common operation data.
#define MSICA_CLEANUP_ACTION_COUNT
Operation data (guid-string, 0x5)
Create TAP/TUN interface | msica_op_string.
Operation data (GUID, 0x4)
struct msica_op * tail
Pointer to the first operation in the sequence.
struct msica_op * msica_op_create_multistring_va(_In_ enum msica_op_type type, _In_ int ticks, _In_opt_ struct msica_op *next, _In_ va_list arglist)
Allocates and fills a new msica_op_multistring operation.
Operation data (multi-string, 0x3)
static bool msica_op_seq_is_empty(_In_ const struct msica_op_seq *seq)
Is operation sequence empty.
Operation data (string, 0x2)
static struct msica_op * msica_op_create_multistring(_In_ enum msica_op_type type, _In_ int ticks, _In_opt_ struct msica_op *next,...)
Allocates and fills a new msica_op_multistring operation.
DWORD msica_op_seq_save(_In_ const struct msica_op_seq *seq, _In_ HANDLE hFile)
Saves the operation sequence to the file.
Delete TAP/TUN interface | msica_op_guid.
Enable/disable rollback | msica_op_bool.
void msica_op_seq_add_tail(_Inout_ struct msica_op_seq *seq, _Inout_ struct msica_op *operation)
Appends operation(s) to the end of the operation sequence.
Delete file | msica_op_string.
struct msica_op * msica_op_create_bool(_In_ enum msica_op_type type, _In_ int ticks, _In_opt_ struct msica_op *next, _In_ bool value)
Allocates and fills a new msica_op_bool operation.
struct msica_op * next
Number of ticks on the progress indicator this operation represents.
Rename TAP/TUN interface | msica_op_guid_string.
struct msica_op * msica_op_create_guid(_In_ enum msica_op_type type, _In_ int ticks, _In_opt_ struct msica_op *next, _In_ const GUID *value)
Allocates and fills a new msica_op_guid operation.
void msica_op_seq_free(_Inout_ struct msica_op_seq *seq)
Frees operation sequence.
bool continue_on_error
Installer handle.
struct msica_op * msica_op_create_string(_In_ enum msica_op_type type, _In_ int ticks, _In_opt_ struct msica_op *next, _In_z_ LPCTSTR value)
Allocates and fills a new msica_op_string operation.
GUID value_guid
Common operation data.
bool value
Common operation data.
void openvpnmsica_session_init(_Inout_ struct msica_session *session, _In_ MSIHANDLE hInstall, _In_ bool continue_on_error, _In_ bool rollback_enabled)
Initializes execution session.
void msica_op_seq_add_head(_Inout_ struct msica_op_seq *seq, _Inout_ struct msica_op *operation)
Inserts operation(s) to the beginning of the operation sequence.
#define MSICA_MAKE_OP_TYPE(op, data)
Operation type macros.