/* msi-default.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from msi-default.vala, do not modify */

#include "wixl.h"
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include "libcommon.h"
#include <glib-object.h>
#include <gobject/gvaluecollector.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

#define _g_free0(var) (var = (g_free (var), NULL))
#define _wixl_msi_default_action_info_free0(var) ((var == NULL) ? NULL : (var = (wixl_msi_default_action_info_free (var), NULL)))
typedef struct _WixlParamSpecMSIDefault WixlParamSpecMSIDefault;

struct _WixlParamSpecMSIDefault {
	GParamSpec parent_instance;
};

static gpointer wixl_msi_default_parent_class = NULL;

static void wixl_msi_default_finalize (WixlMSIDefault * obj);
static GType wixl_msi_default_get_type_once (void);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static const WixlMSIDefaultActionInfo WIXL_MSI_DEFAULT_actions[79] = {{"InstallInitialize", NULL, 1500, (WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE) | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"InstallExecute", "NOT Installed", 6500, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"InstallExecuteAgain", "NOT Installed", 6550, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"InstallFinalize", NULL, 6600, (WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE) | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"InstallFiles", NULL, 4000, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"InstallAdminPackage", NULL, 3900, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE}, {"FileCost", NULL, 900, ((WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_UI_SEQUENCE) | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE) | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"CostInitialize", NULL, 800, WIXL_MSI_DEFAULT_ACTION_FLAGS_ALL}, {"CostFinalize", NULL, 1000, WIXL_MSI_DEFAULT_ACTION_FLAGS_ALL}, {"InstallValidate", NULL, 1400, (WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE) | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"ExecuteAction", NULL, 1300, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_UI_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"CreateShortcuts", NULL, 4500, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"MsiPublishAssemblies", NULL, 6250, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"PublishComponents", NULL, 6200, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"PublishFeatures", NULL, 6300, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"PublishProduct", NULL, 6400, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RegisterClassInfo", NULL, 4600, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RegisterExtensionInfo", NULL, 4700, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RegisterMIMEInfo", NULL, 4900, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RegisterProgIdInfo", NULL, 4800, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"AllocateRegistrySpace", "NOT Installed", 1550, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"AppSearch", NULL, 50, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"BindImage", NULL, 4300, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"CCPSearch", "NOT Installed", 500, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"CreateFolders", NULL, 3700, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"DeleteServices", "VersionNT", 2000, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"DuplicateFiles", NULL, 4210, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"ExitDialog", NULL, -1, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_UI_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"FatalError", NULL, -3, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_UI_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"FindRelatedProducts", NULL, 25, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"InstallODBC", NULL, 5400, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"InstallServices", "VersionNT", 5800, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"MaintenanceWelcomeDlg", NULL, 1295, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"MsiConfigureServices", "VersionNT>=600", 5850, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"IsolateComponents", NULL, 950, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"LaunchConditions", NULL, 100, ((WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_UI_SEQUENCE) | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE) | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"MigrateFeatureStates", NULL, 1200, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"MoveFiles", NULL, 3800, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"PatchFiles", NULL, 4090, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"PrepareDlg", NULL, 49, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"ProcessComponents", NULL, 1600, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"ProgressDlg", NULL, 1299, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"RegisterComPlus", NULL, 5700, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RegisterFonts", NULL, 5300, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RegisterProduct", NULL, 6100, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RegisterTypeLibraries", NULL, 5500, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RegisterUser", NULL, 6000, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RemoveDuplicateFiles", NULL, 3400, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RemoveEnvironmentStrings", NULL, 3300, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RemoveFiles", NULL, 3500, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RemoveFolders", NULL, 3600, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RemoveIniValues", NULL, 3100, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RemoveODBC", NULL, 2400, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RemoveRegistryValues", NULL, 2600, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"RemoveShortcuts", NULL, 3200, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"ResumeDlg", NULL, 1296, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"RMCCPSearch", "NOT Installed", 600, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"SelfRegModules", NULL, 5600, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"SelfUnregModules", NULL, 2200, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"SetODBCFolders", NULL, 1100, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"StartServices", "VersionNT", 5900, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"StopServices", "VersionNT", 1900, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"MsiUnpublishAssemblies", NULL, 1750, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UnpublishComponents", NULL, 1700, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UnpublishFeatures", NULL, 1800, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UnregisterClassInfo", NULL, 2700, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UnregisterComPlus", NULL, 2100, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UnregisterExtensionInfo", NULL, 2800, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UnregisterFonts", NULL, 2500, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UnregisterMIMEInfo", NULL, 3000, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UnregisterProgIdInfo", NULL, 2900, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UnregisterTypeLibraries", NULL, 2300, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"UserExit", NULL, -2, WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_UI_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"ValidateProductID", NULL, 700, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE | WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"WelcomeDlg", NULL, 1297, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"WelcomeEulaDlg", NULL, 1298, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE}, {"WriteEnvironmentStrings", NULL, 5200, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"WriteIniValues", NULL, 5100, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}, {"WriteRegistryValues", NULL, 5000, WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE}};

static GType
wixl_msi_default_action_flags_get_type_once (void)
{
	static const GFlagsValue values[] = {{WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE, "WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_EXECUTE_SEQUENCE", "admin-execute-sequence"}, {WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_UI_SEQUENCE, "WIXL_MSI_DEFAULT_ACTION_FLAGS_ADMIN_UI_SEQUENCE", "admin-ui-sequence"}, {WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE, "WIXL_MSI_DEFAULT_ACTION_FLAGS_ADVT_EXECUTE_SEQUENCE", "advt-execute-sequence"}, {WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE, "WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_EXECUTE_SEQUENCE", "install-execute-sequence"}, {WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE, "WIXL_MSI_DEFAULT_ACTION_FLAGS_INSTALL_UI_SEQUENCE", "install-ui-sequence"}, {WIXL_MSI_DEFAULT_ACTION_FLAGS_ALL, "WIXL_MSI_DEFAULT_ACTION_FLAGS_ALL", "all"}, {0, NULL, NULL}};
	GType wixl_msi_default_action_flags_type_id;
	wixl_msi_default_action_flags_type_id = g_flags_register_static ("WixlMSIDefaultActionFlags", values);
	return wixl_msi_default_action_flags_type_id;
}

GType
wixl_msi_default_action_flags_get_type (void)
{
	static volatile gsize wixl_msi_default_action_flags_type_id__once = 0;
	if (g_once_init_enter (&wixl_msi_default_action_flags_type_id__once)) {
		GType wixl_msi_default_action_flags_type_id;
		wixl_msi_default_action_flags_type_id = wixl_msi_default_action_flags_get_type_once ();
		g_once_init_leave (&wixl_msi_default_action_flags_type_id__once, wixl_msi_default_action_flags_type_id);
	}
	return wixl_msi_default_action_flags_type_id__once;
}

static GType
wixl_msi_default_action_get_type_once (void)
{
	static const GEnumValue values[] = {{WIXL_MSI_DEFAULT_ACTION_InstallInitialize, "WIXL_MSI_DEFAULT_ACTION_InstallInitialize", "installinitialize"}, {WIXL_MSI_DEFAULT_ACTION_InstallExecute, "WIXL_MSI_DEFAULT_ACTION_InstallExecute", "installexecute"}, {WIXL_MSI_DEFAULT_ACTION_InstallExecuteAgain, "WIXL_MSI_DEFAULT_ACTION_InstallExecuteAgain", "installexecuteagain"}, {WIXL_MSI_DEFAULT_ACTION_InstallFinalize, "WIXL_MSI_DEFAULT_ACTION_InstallFinalize", "installfinalize"}, {WIXL_MSI_DEFAULT_ACTION_InstallFiles, "WIXL_MSI_DEFAULT_ACTION_InstallFiles", "installfiles"}, {WIXL_MSI_DEFAULT_ACTION_InstallAdminPackage, "WIXL_MSI_DEFAULT_ACTION_InstallAdminPackage", "installadminpackage"}, {WIXL_MSI_DEFAULT_ACTION_FileCost, "WIXL_MSI_DEFAULT_ACTION_FileCost", "filecost"}, {WIXL_MSI_DEFAULT_ACTION_CostInitialize, "WIXL_MSI_DEFAULT_ACTION_CostInitialize", "costinitialize"}, {WIXL_MSI_DEFAULT_ACTION_CostFinalize, "WIXL_MSI_DEFAULT_ACTION_CostFinalize", "costfinalize"}, {WIXL_MSI_DEFAULT_ACTION_InstallValidate, "WIXL_MSI_DEFAULT_ACTION_InstallValidate", "installvalidate"}, {WIXL_MSI_DEFAULT_ACTION_ExecuteAction, "WIXL_MSI_DEFAULT_ACTION_ExecuteAction", "executeaction"}, {WIXL_MSI_DEFAULT_ACTION_CreateShortcuts, "WIXL_MSI_DEFAULT_ACTION_CreateShortcuts", "createshortcuts"}, {WIXL_MSI_DEFAULT_ACTION_MsiPublishAssemblies, "WIXL_MSI_DEFAULT_ACTION_MsiPublishAssemblies", "msipublishassemblies"}, {WIXL_MSI_DEFAULT_ACTION_PublishComponents, "WIXL_MSI_DEFAULT_ACTION_PublishComponents", "publishcomponents"}, {WIXL_MSI_DEFAULT_ACTION_PublishFeatures, "WIXL_MSI_DEFAULT_ACTION_PublishFeatures", "publishfeatures"}, {WIXL_MSI_DEFAULT_ACTION_PublishProduct, "WIXL_MSI_DEFAULT_ACTION_PublishProduct", "publishproduct"}, {WIXL_MSI_DEFAULT_ACTION_RegisterClassInfo, "WIXL_MSI_DEFAULT_ACTION_RegisterClassInfo", "registerclassinfo"}, {WIXL_MSI_DEFAULT_ACTION_RegisterExtensionInfo, "WIXL_MSI_DEFAULT_ACTION_RegisterExtensionInfo", "registerextensioninfo"}, {WIXL_MSI_DEFAULT_ACTION_RegisterMIMEInfo, "WIXL_MSI_DEFAULT_ACTION_RegisterMIMEInfo", "registermimeinfo"}, {WIXL_MSI_DEFAULT_ACTION_RegisterProgIdInfo, "WIXL_MSI_DEFAULT_ACTION_RegisterProgIdInfo", "registerprogidinfo"}, {WIXL_MSI_DEFAULT_ACTION_AllocateRegistrySpace, "WIXL_MSI_DEFAULT_ACTION_AllocateRegistrySpace", "allocateregistryspace"}, {WIXL_MSI_DEFAULT_ACTION_AppSearch, "WIXL_MSI_DEFAULT_ACTION_AppSearch", "appsearch"}, {WIXL_MSI_DEFAULT_ACTION_BindImage, "WIXL_MSI_DEFAULT_ACTION_BindImage", "bindimage"}, {WIXL_MSI_DEFAULT_ACTION_CCPSearch, "WIXL_MSI_DEFAULT_ACTION_CCPSearch", "ccpsearch"}, {WIXL_MSI_DEFAULT_ACTION_CreateFolders, "WIXL_MSI_DEFAULT_ACTION_CreateFolders", "createfolders"}, {WIXL_MSI_DEFAULT_ACTION_DeleteServices, "WIXL_MSI_DEFAULT_ACTION_DeleteServices", "deleteservices"}, {WIXL_MSI_DEFAULT_ACTION_DuplicateFiles, "WIXL_MSI_DEFAULT_ACTION_DuplicateFiles", "duplicatefiles"}, {WIXL_MSI_DEFAULT_ACTION_ExitDialog, "WIXL_MSI_DEFAULT_ACTION_ExitDialog", "exitdialog"}, {WIXL_MSI_DEFAULT_ACTION_FatalError, "WIXL_MSI_DEFAULT_ACTION_FatalError", "fatalerror"}, {WIXL_MSI_DEFAULT_ACTION_FindRelatedProducts, "WIXL_MSI_DEFAULT_ACTION_FindRelatedProducts", "findrelatedproducts"}, {WIXL_MSI_DEFAULT_ACTION_InstallODBC, "WIXL_MSI_DEFAULT_ACTION_InstallODBC", "installodbc"}, {WIXL_MSI_DEFAULT_ACTION_InstallServices, "WIXL_MSI_DEFAULT_ACTION_InstallServices", "installservices"}, {WIXL_MSI_DEFAULT_ACTION_MaintenanceWelcomeDlg, "WIXL_MSI_DEFAULT_ACTION_MaintenanceWelcomeDlg", "maintenancewelcomedlg"}, {WIXL_MSI_DEFAULT_ACTION_MsiConfigureServices, "WIXL_MSI_DEFAULT_ACTION_MsiConfigureServices", "msiconfigureservices"}, {WIXL_MSI_DEFAULT_ACTION_IsolateComponents, "WIXL_MSI_DEFAULT_ACTION_IsolateComponents", "isolatecomponents"}, {WIXL_MSI_DEFAULT_ACTION_LaunchConditions, "WIXL_MSI_DEFAULT_ACTION_LaunchConditions", "launchconditions"}, {WIXL_MSI_DEFAULT_ACTION_MigrateFeatureStates, "WIXL_MSI_DEFAULT_ACTION_MigrateFeatureStates", "migratefeaturestates"}, {WIXL_MSI_DEFAULT_ACTION_MoveFiles, "WIXL_MSI_DEFAULT_ACTION_MoveFiles", "movefiles"}, {WIXL_MSI_DEFAULT_ACTION_PatchFiles, "WIXL_MSI_DEFAULT_ACTION_PatchFiles", "patchfiles"}, {WIXL_MSI_DEFAULT_ACTION_PrepareDlg, "WIXL_MSI_DEFAULT_ACTION_PrepareDlg", "preparedlg"}, {WIXL_MSI_DEFAULT_ACTION_ProcessComponents, "WIXL_MSI_DEFAULT_ACTION_ProcessComponents", "processcomponents"}, {WIXL_MSI_DEFAULT_ACTION_ProgressDlg, "WIXL_MSI_DEFAULT_ACTION_ProgressDlg", "progressdlg"}, {WIXL_MSI_DEFAULT_ACTION_RegisterComPlus, "WIXL_MSI_DEFAULT_ACTION_RegisterComPlus", "registercomplus"}, {WIXL_MSI_DEFAULT_ACTION_RegisterFonts, "WIXL_MSI_DEFAULT_ACTION_RegisterFonts", "registerfonts"}, {WIXL_MSI_DEFAULT_ACTION_RegisterProduct, "WIXL_MSI_DEFAULT_ACTION_RegisterProduct", "registerproduct"}, {WIXL_MSI_DEFAULT_ACTION_RegisterTypeLibraries, "WIXL_MSI_DEFAULT_ACTION_RegisterTypeLibraries", "registertypelibraries"}, {WIXL_MSI_DEFAULT_ACTION_RegisterUser, "WIXL_MSI_DEFAULT_ACTION_RegisterUser", "registeruser"}, {WIXL_MSI_DEFAULT_ACTION_RemoveDuplicateFiles, "WIXL_MSI_DEFAULT_ACTION_RemoveDuplicateFiles", "removeduplicatefiles"}, {WIXL_MSI_DEFAULT_ACTION_RemoveEnvironmentStrings, "WIXL_MSI_DEFAULT_ACTION_RemoveEnvironmentStrings", "removeenvironmentstrings"}, {WIXL_MSI_DEFAULT_ACTION_RemoveFiles, "WIXL_MSI_DEFAULT_ACTION_RemoveFiles", "removefiles"}, {WIXL_MSI_DEFAULT_ACTION_RemoveFolders, "WIXL_MSI_DEFAULT_ACTION_RemoveFolders", "removefolders"}, {WIXL_MSI_DEFAULT_ACTION_RemoveIniValues, "WIXL_MSI_DEFAULT_ACTION_RemoveIniValues", "removeinivalues"}, {WIXL_MSI_DEFAULT_ACTION_RemoveODBC, "WIXL_MSI_DEFAULT_ACTION_RemoveODBC", "removeodbc"}, {WIXL_MSI_DEFAULT_ACTION_RemoveRegistryValues, "WIXL_MSI_DEFAULT_ACTION_RemoveRegistryValues", "removeregistryvalues"}, {WIXL_MSI_DEFAULT_ACTION_RemoveShortcuts, "WIXL_MSI_DEFAULT_ACTION_RemoveShortcuts", "removeshortcuts"}, {WIXL_MSI_DEFAULT_ACTION_ResumeDlg, "WIXL_MSI_DEFAULT_ACTION_ResumeDlg", "resumedlg"}, {WIXL_MSI_DEFAULT_ACTION_RMCCPSearch, "WIXL_MSI_DEFAULT_ACTION_RMCCPSearch", "rmccpsearch"}, {WIXL_MSI_DEFAULT_ACTION_SelfRegModules, "WIXL_MSI_DEFAULT_ACTION_SelfRegModules", "selfregmodules"}, {WIXL_MSI_DEFAULT_ACTION_SelfUnregModules, "WIXL_MSI_DEFAULT_ACTION_SelfUnregModules", "selfunregmodules"}, {WIXL_MSI_DEFAULT_ACTION_SetODBCFolders, "WIXL_MSI_DEFAULT_ACTION_SetODBCFolders", "setodbcfolders"}, {WIXL_MSI_DEFAULT_ACTION_StartServices, "WIXL_MSI_DEFAULT_ACTION_StartServices", "startservices"}, {WIXL_MSI_DEFAULT_ACTION_StopServices, "WIXL_MSI_DEFAULT_ACTION_StopServices", "stopservices"}, {WIXL_MSI_DEFAULT_ACTION_MsiUnpublishAssemblies, "WIXL_MSI_DEFAULT_ACTION_MsiUnpublishAssemblies", "msiunpublishassemblies"}, {WIXL_MSI_DEFAULT_ACTION_UnpublishComponents, "WIXL_MSI_DEFAULT_ACTION_UnpublishComponents", "unpublishcomponents"}, {WIXL_MSI_DEFAULT_ACTION_UnpublishFeatures, "WIXL_MSI_DEFAULT_ACTION_UnpublishFeatures", "unpublishfeatures"}, {WIXL_MSI_DEFAULT_ACTION_UnregisterClassInfo, "WIXL_MSI_DEFAULT_ACTION_UnregisterClassInfo", "unregisterclassinfo"}, {WIXL_MSI_DEFAULT_ACTION_UnregisterComPlus, "WIXL_MSI_DEFAULT_ACTION_UnregisterComPlus", "unregistercomplus"}, {WIXL_MSI_DEFAULT_ACTION_UnregisterExtensionInfo, "WIXL_MSI_DEFAULT_ACTION_UnregisterExtensionInfo", "unregisterextensioninfo"}, {WIXL_MSI_DEFAULT_ACTION_UnregisterFonts, "WIXL_MSI_DEFAULT_ACTION_UnregisterFonts", "unregisterfonts"}, {WIXL_MSI_DEFAULT_ACTION_UnregisterMIMEInfo, "WIXL_MSI_DEFAULT_ACTION_UnregisterMIMEInfo", "unregistermimeinfo"}, {WIXL_MSI_DEFAULT_ACTION_UnregisterProgIdInfo, "WIXL_MSI_DEFAULT_ACTION_UnregisterProgIdInfo", "unregisterprogidinfo"}, {WIXL_MSI_DEFAULT_ACTION_UnregisterTypeLibraries, "WIXL_MSI_DEFAULT_ACTION_UnregisterTypeLibraries", "unregistertypelibraries"}, {WIXL_MSI_DEFAULT_ACTION_UserExit, "WIXL_MSI_DEFAULT_ACTION_UserExit", "userexit"}, {WIXL_MSI_DEFAULT_ACTION_ValidateProductID, "WIXL_MSI_DEFAULT_ACTION_ValidateProductID", "validateproductid"}, {WIXL_MSI_DEFAULT_ACTION_WelcomeDlg, "WIXL_MSI_DEFAULT_ACTION_WelcomeDlg", "welcomedlg"}, {WIXL_MSI_DEFAULT_ACTION_WelcomeEulaDlg, "WIXL_MSI_DEFAULT_ACTION_WelcomeEulaDlg", "welcomeeuladlg"}, {WIXL_MSI_DEFAULT_ACTION_WriteEnvironmentStrings, "WIXL_MSI_DEFAULT_ACTION_WriteEnvironmentStrings", "writeenvironmentstrings"}, {WIXL_MSI_DEFAULT_ACTION_WriteIniValues, "WIXL_MSI_DEFAULT_ACTION_WriteIniValues", "writeinivalues"}, {WIXL_MSI_DEFAULT_ACTION_WriteRegistryValues, "WIXL_MSI_DEFAULT_ACTION_WriteRegistryValues", "writeregistryvalues"}, {0, NULL, NULL}};
	GType wixl_msi_default_action_type_id;
	wixl_msi_default_action_type_id = g_enum_register_static ("WixlMSIDefaultAction", values);
	return wixl_msi_default_action_type_id;
}

GType
wixl_msi_default_action_get_type (void)
{
	static volatile gsize wixl_msi_default_action_type_id__once = 0;
	if (g_once_init_enter (&wixl_msi_default_action_type_id__once)) {
		GType wixl_msi_default_action_type_id;
		wixl_msi_default_action_type_id = wixl_msi_default_action_get_type_once ();
		g_once_init_leave (&wixl_msi_default_action_type_id__once, wixl_msi_default_action_type_id);
	}
	return wixl_msi_default_action_type_id__once;
}

void
wixl_msi_default_get_action (WixlMSIDefaultAction action,
                             WixlMSIDefaultActionInfo* result)
{
	WixlMSIDefaultActionInfo _tmp0_;
	WixlMSIDefaultActionInfo _tmp1_;
	WixlMSIDefaultActionInfo _tmp2_ = {0};
	_tmp0_ = WIXL_MSI_DEFAULT_actions[action];
	_tmp1_ = _tmp0_;
	wixl_msi_default_action_info_copy (&_tmp1_, &_tmp2_);
	*result = _tmp2_;
	return;
}

static gpointer
_wixl_msi_default_action_info_dup0 (gpointer self)
{
	return self ? wixl_msi_default_action_info_dup (self) : NULL;
}

WixlMSIDefaultActionInfo*
wixl_msi_default_get_action_by_name (const gchar* name)
{
	WixlMSIDefaultActionInfo* action = NULL;
	GError* _inner_error0_ = NULL;
	WixlMSIDefaultActionInfo* result;
	g_return_val_if_fail (name != NULL, NULL);
	action = NULL;
	{
		WixlMSIDefaultAction _tmp0_ = 0;
		gchar* _tmp1_;
		gchar* _tmp2_;
		gpointer _tmp3_;
		WixlMSIDefaultAction _tmp4_;
		WixlMSIDefaultActionInfo _tmp5_;
		WixlMSIDefaultActionInfo _tmp6_;
		WixlMSIDefaultActionInfo* _tmp7_;
		_tmp1_ = g_utf8_strdown (name, (gssize) -1);
		_tmp2_ = _tmp1_;
		_tmp3_ = wixl_enum_from_string (WIXL_MSI_DEFAULT_TYPE_ACTION, NULL, NULL, _tmp2_, &_inner_error0_);
		_tmp4_ = (WixlMSIDefaultAction) ((gintptr) _tmp3_);
		_g_free0 (_tmp2_);
		_tmp0_ = _tmp4_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_tmp5_ = WIXL_MSI_DEFAULT_actions[_tmp0_];
		_tmp6_ = _tmp5_;
		_tmp7_ = _wixl_msi_default_action_info_dup0 (&_tmp6_);
		_wixl_msi_default_action_info_free0 (action);
		action = _tmp7_;
	}
	goto __finally0;
	__catch0_g_error:
	{
		g_clear_error (&_inner_error0_);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		_wixl_msi_default_action_info_free0 (action);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return NULL;
	}
	result = action;
	return result;
}

WixlMSIDefault*
wixl_msi_default_construct (GType object_type)
{
	WixlMSIDefault* self = NULL;
	self = (WixlMSIDefault*) g_type_create_instance (object_type);
	return self;
}

WixlMSIDefault*
wixl_msi_default_new (void)
{
	return wixl_msi_default_construct (WIXL_TYPE_MSI_DEFAULT);
}

void
wixl_msi_default_action_info_copy (const WixlMSIDefaultActionInfo* self,
                                   WixlMSIDefaultActionInfo* dest)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	_tmp0_ = (*self).name;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 ((*dest).name);
	(*dest).name = _tmp1_;
	_tmp2_ = (*self).condition;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 ((*dest).condition);
	(*dest).condition = _tmp3_;
	(*dest).sequence = (*self).sequence;
	(*dest).flags = (*self).flags;
}

void
wixl_msi_default_action_info_destroy (WixlMSIDefaultActionInfo* self)
{
	_g_free0 ((*self).name);
	_g_free0 ((*self).condition);
}

WixlMSIDefaultActionInfo*
wixl_msi_default_action_info_dup (const WixlMSIDefaultActionInfo* self)
{
	WixlMSIDefaultActionInfo* dup;
	dup = g_new0 (WixlMSIDefaultActionInfo, 1);
	wixl_msi_default_action_info_copy (self, dup);
	return dup;
}

void
wixl_msi_default_action_info_free (WixlMSIDefaultActionInfo* self)
{
	wixl_msi_default_action_info_destroy (self);
	g_free (self);
}

static GType
wixl_msi_default_action_info_get_type_once (void)
{
	GType wixl_msi_default_action_info_type_id;
	wixl_msi_default_action_info_type_id = g_boxed_type_register_static ("WixlMSIDefaultActionInfo", (GBoxedCopyFunc) wixl_msi_default_action_info_dup, (GBoxedFreeFunc) wixl_msi_default_action_info_free);
	return wixl_msi_default_action_info_type_id;
}

GType
wixl_msi_default_action_info_get_type (void)
{
	static volatile gsize wixl_msi_default_action_info_type_id__once = 0;
	if (g_once_init_enter (&wixl_msi_default_action_info_type_id__once)) {
		GType wixl_msi_default_action_info_type_id;
		wixl_msi_default_action_info_type_id = wixl_msi_default_action_info_get_type_once ();
		g_once_init_leave (&wixl_msi_default_action_info_type_id__once, wixl_msi_default_action_info_type_id);
	}
	return wixl_msi_default_action_info_type_id__once;
}

static void
wixl_value_msi_default_init (GValue* value)
{
	value->data[0].v_pointer = NULL;
}

static void
wixl_value_msi_default_free_value (GValue* value)
{
	if (value->data[0].v_pointer) {
		wixl_msi_default_unref (value->data[0].v_pointer);
	}
}

static void
wixl_value_msi_default_copy_value (const GValue* src_value,
                                   GValue* dest_value)
{
	if (src_value->data[0].v_pointer) {
		dest_value->data[0].v_pointer = wixl_msi_default_ref (src_value->data[0].v_pointer);
	} else {
		dest_value->data[0].v_pointer = NULL;
	}
}

static gpointer
wixl_value_msi_default_peek_pointer (const GValue* value)
{
	return value->data[0].v_pointer;
}

static gchar*
wixl_value_msi_default_collect_value (GValue* value,
                                      guint n_collect_values,
                                      GTypeCValue* collect_values,
                                      guint collect_flags)
{
	if (collect_values[0].v_pointer) {
		WixlMSIDefault * object;
		object = collect_values[0].v_pointer;
		if (object->parent_instance.g_class == NULL) {
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
		}
		value->data[0].v_pointer = wixl_msi_default_ref (object);
	} else {
		value->data[0].v_pointer = NULL;
	}
	return NULL;
}

static gchar*
wixl_value_msi_default_lcopy_value (const GValue* value,
                                    guint n_collect_values,
                                    GTypeCValue* collect_values,
                                    guint collect_flags)
{
	WixlMSIDefault ** object_p;
	object_p = collect_values[0].v_pointer;
	if (!object_p) {
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
	}
	if (!value->data[0].v_pointer) {
		*object_p = NULL;
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
		*object_p = value->data[0].v_pointer;
	} else {
		*object_p = wixl_msi_default_ref (value->data[0].v_pointer);
	}
	return NULL;
}

GParamSpec*
wixl_param_spec_msi_default (const gchar* name,
                             const gchar* nick,
                             const gchar* blurb,
                             GType object_type,
                             GParamFlags flags)
{
	WixlParamSpecMSIDefault* spec;
	g_return_val_if_fail (g_type_is_a (object_type, WIXL_TYPE_MSI_DEFAULT), NULL);
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
	G_PARAM_SPEC (spec)->value_type = object_type;
	return G_PARAM_SPEC (spec);
}

gpointer
wixl_value_get_msi_default (const GValue* value)
{
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, WIXL_TYPE_MSI_DEFAULT), NULL);
	return value->data[0].v_pointer;
}

void
wixl_value_set_msi_default (GValue* value,
                            gpointer v_object)
{
	WixlMSIDefault * old;
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, WIXL_TYPE_MSI_DEFAULT));
	old = value->data[0].v_pointer;
	if (v_object) {
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, WIXL_TYPE_MSI_DEFAULT));
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
		value->data[0].v_pointer = v_object;
		wixl_msi_default_ref (value->data[0].v_pointer);
	} else {
		value->data[0].v_pointer = NULL;
	}
	if (old) {
		wixl_msi_default_unref (old);
	}
}

void
wixl_value_take_msi_default (GValue* value,
                             gpointer v_object)
{
	WixlMSIDefault * old;
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, WIXL_TYPE_MSI_DEFAULT));
	old = value->data[0].v_pointer;
	if (v_object) {
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, WIXL_TYPE_MSI_DEFAULT));
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
		value->data[0].v_pointer = v_object;
	} else {
		value->data[0].v_pointer = NULL;
	}
	if (old) {
		wixl_msi_default_unref (old);
	}
}

static void
wixl_msi_default_class_init (WixlMSIDefaultClass * klass,
                             gpointer klass_data)
{
	wixl_msi_default_parent_class = g_type_class_peek_parent (klass);
	((WixlMSIDefaultClass *) klass)->finalize = wixl_msi_default_finalize;
}

static void
wixl_msi_default_instance_init (WixlMSIDefault * self,
                                gpointer klass)
{
	self->ref_count = 1;
}

static void
wixl_msi_default_finalize (WixlMSIDefault * obj)
{
	WixlMSIDefault * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_MSI_DEFAULT, WixlMSIDefault);
	g_signal_handlers_destroy (self);
}

static GType
wixl_msi_default_get_type_once (void)
{
	static const GTypeValueTable g_define_type_value_table = { wixl_value_msi_default_init, wixl_value_msi_default_free_value, wixl_value_msi_default_copy_value, wixl_value_msi_default_peek_pointer, "p", wixl_value_msi_default_collect_value, "p", wixl_value_msi_default_lcopy_value };
	static const GTypeInfo g_define_type_info = { sizeof (WixlMSIDefaultClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_msi_default_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlMSIDefault), 0, (GInstanceInitFunc) wixl_msi_default_instance_init, &g_define_type_value_table };
	static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
	GType wixl_msi_default_type_id;
	wixl_msi_default_type_id = g_type_register_fundamental (g_type_fundamental_next (), "WixlMSIDefault", &g_define_type_info, &g_define_type_fundamental_info, 0);
	return wixl_msi_default_type_id;
}

GType
wixl_msi_default_get_type (void)
{
	static volatile gsize wixl_msi_default_type_id__once = 0;
	if (g_once_init_enter (&wixl_msi_default_type_id__once)) {
		GType wixl_msi_default_type_id;
		wixl_msi_default_type_id = wixl_msi_default_get_type_once ();
		g_once_init_leave (&wixl_msi_default_type_id__once, wixl_msi_default_type_id);
	}
	return wixl_msi_default_type_id__once;
}

gpointer
wixl_msi_default_ref (gpointer instance)
{
	WixlMSIDefault * self;
	self = instance;
	g_atomic_int_inc (&self->ref_count);
	return instance;
}

void
wixl_msi_default_unref (gpointer instance)
{
	WixlMSIDefault * self;
	self = instance;
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
		WIXL_MSI_DEFAULT_GET_CLASS (self)->finalize (self);
		g_type_free_instance ((GTypeInstance *) self);
	}
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

