Extension DLL message order

Messages generally arrive in the order dictated by the installation, registration, or uninstall process. Please consult the per-message documentation to see the scheduling details of each message. The canonical message order is as follows, per session type.

Note: TIXMSG_ABORT_PROCESSING may be issued at any point if the installation is aborted. In that case, the remaining messages (except for TIXMSG_TERMINATE) are omitted and a rollback is started.

Session type = TIXSES_PREFLIGHT

TIXMSG_GETVERSION
TIXMSG_INITIALIZE
TIXMSG_TERMINATE

Session type = TIXSES_INSTALL

TIXMSG_GETVERSION
TIXMSG_INITIALIZE

UI created

TIXMSG_INIT_OPTIONS
TIXMSG_CHECK_REQUIREMENTS
TIXMSG_INIT_REGISTRATION (if registration enabled)
TIXMSG_CHECK_REGISTRATION (if registration enabled)
TIXMSG_CHECK_OPTIONS
TIXMSG_START_PROCESSING
TIXMSG_START_SYSTEM_REMOVAL
TIXMSG_END_SYSTEM_REMOVAL
TIXMSG_START_FILE_UNREGISTRATION
TIXMSG_END_FILE_UNREGISTRATION
TIXMSG_START_SHORTCUT_REMOVAL
TIXMSG_END_SHORTCUT_REMOVAL
TIXMSG_START_FILE_REMOVAL
TIXMSG_END_FILE_REMOVAL
TIXMSG_START_FILE_INSTALL
TIXMSG_END_FILE_INSTALL
TIXMSG_START_SHORTCUT_INSTALL
TIXMSG_END_SHORTCUT_INSTALL
TIXMSG_START_FILE_REGISTRATION
TIXMSG_END_FILE_REGISTRATION
TIXMSG_START_SYSTEM_INSTALL
TIXMSG_END_SYSTEM_INSTALL
TIXMSG_END_PROCESSING
TIXMSG_APPLY_REGISTRATION (if registration enabled)

UI destroyed

TIXMSG_TERMINATE

Session type = TIXSES_REGISTER

TIXMSG_GETVERSION
TIXMSG_INITIALIZE

UI created

TIXMSG_START_PROCESSING
TIXMSG_START_FILE_REGISTRATION
TIXMSG_END_FILE_REGISTRATION
TIXMSG_END_PROCESSING

UI destroyed

TIXMSG_TERMINATE

Session type = TIXSES_UNINSTALL

TIXMSG_GETVERSION
TIXMSG_INITIALIZE

UI created

TIXMSG_CHECK_UNINSTALL
TIXMSG_START_PROCESSING
TIXMSG_START_SYSTEM_REMOVAL
TIXMSG_END_SYSTEM_REMOVAL
TIXMSG_START_FILE_UNREGISTRATION
TIXMSG_END_FILE_UNREGISTRATION
TIXMSG_START_SHORTCUT_REMOVAL
TIXMSG_END_SHORTCUT_REMOVAL
TIXMSG_START_FILE_REMOVAL
TIXMSG_END_FILE_REMOVAL
TIXMSG_END_PROCESSING

UI destroyed

TIXMSG_TERMINATE